返回列表 发帖

网页制作中页面的加密和破解

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
; ]! {( y' _# [- G6 j) X+ W2 l0 H% t  ~& O8 w, T
" I- _9 ^: s3 c
方法一:- O" ^+ b+ W- c. X& Z2 b: w

$ K, ?# b9 V+ e( ^+ B0 {
! W! \  c2 p3 f0 i+ D, d+ l- Z8 P  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:: f$ j2 `- F  J. J+ f

3 j0 D0 w7 U: x0 R9 U<HTML>* _4 S  [% H* j$ d4 s. n6 ]
<SCRIPT LANGUAGE="javascript">
6 \7 P" A. ?# l* q' m& bvar Words ="%3Chtml%3E%3Cbody%20bgcolor%3D%22red%22%3E%3Cp%3E%u8FD9%u662F%u4F8B%u5B50%uFF01%uFF01%uFF1A%uFF09%3C/p%3E%3C/body%3E%3C/html%3E"# x' F5 d/ i+ w1 o! n. {. V0 @
var NewWords;+ |6 e% ]# E( t* ~
NewWords = unescape(Words);  C' ~0 j: M/ l; `& s+ F+ Z
document.write(NewWords)
7 x( W# b9 o6 I</SCRIPT>
: M- H7 J, d, p/ {" k2 d<BODY>
/ p5 U" f0 O8 e  T) |: t: |+ i</BODY>
4 \6 `0 h" W# p. _/ q</HTML>
% g: t; G' m1 q7 U! t  K' d
  I. A( ^; I/ |* P8 \  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:8 I: N1 o0 f2 X2 F) G

  ~2 r- v& |! A/ v$ f! f<HTML><SCRIPT LANGUAGE="javascript">5 q* _/ G8 x9 |* l
var Words ="%3Chtml%3E%3Cbody%20bgcolor%3D%22red%22%3E%3Cp%3E%u8FD9%u662F%u4F8B%u5B50%uFF01%uFF01%uFF1A%uFF09%3C/p%3E%3C/body%3E%3C/html%3E"
0 c% f( Z" h" T( W( r" _* F9 ^var NewWords;
1 {8 G' V. X4 T4 nNewWords = unescape(Words);
2 F5 @# ~' D/ k: A/ J3 pNewWords=NewWords.toString();" _9 q+ y0 x7 f; C, z' D- A  o
function password(){
% X9 z$ I7 P% @5 ^$ j+ \' `document.pw.txtpw.value=NewWords;: J0 ^; s: Q( F  k: Y; }
}
1 X. s+ r1 O. |$ t</SCRIPT>9 f. }0 x  c$ O+ l! @
<BODY>
7 V1 @+ q* v" b  W+ k<form name=pw>: {1 G2 @) x: v; m8 s- j
<input type=button onclick="password()" value="解密">
  R& e7 V) f1 F' Q. t3 ]<br>" b! U3 m9 @6 t8 j- C
<textarea name="txtpw" cols="100" rows="100"></textarea>" W, F7 r( ]1 \, y" ^# n
</form>. B9 `' A+ `/ n  ?3 ~4 F3 w
</BODY>
( q/ g' @6 B% N# s: |: k</HTML>
, u; k7 o3 I. o  l7 V# S+ W6 b% V9 `" j0 o
方法二:
) U2 j2 J. H: J, i
+ u# `* Q6 h7 ?* _. E  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:/ H# P+ [( U7 v

1 C0 V) c  @4 x- `<html><head><script>
: X; j& _9 J) y5 ^function Carbosoft( s ) { var sRet=""; for(j=0; j< s.length; j++ ){ var n= s.charCodeAt(j); if (n>=8364) {n = 128;} sRet += String.fromCharCode( n - 3 ); } return( sRet ); }
, k7 ?0 B( W) |0 I: V! `6 a8 Dvar sJsCmds ="" +7 K1 d% v! B. o9 J$ w3 d
"?kwpoA?khdgA?phwd#kwws0htxly@%Frqwhqw0W|sh%#frqwhqw@%wh{w2kwpo>#fkduvhw@lvr0;;8<04%A?wlwohAZHOFRPH?2wlwohA?phwd#qdph@%JHQHUDWRU%#frqwhqw@%Plfurvriw#IurqwSdjh#613%A?phwd#qdph@%Plfurvriw#Wkhph%#frqwhqw@%qrqh/#ghidxow%A?phwd#qdph@%Plfurvriw#Erughu%#frqwhqw@%qrqh/#ghidxow%A?2khdgA?iudphvhw#erughu@%3%#iudpherughu@%3%#urzv@%-/93%A##?iudph#qdph@%pdlq%#vuf@%xs1kwp%#vfuroolqj@%dxwr%A##?iudph#qdph@%rqolqh%#vuf@%grzq1kwp%#vfuroolqj@%qr%#qruhvl}h#wdujhw@%beodqn%A##?qriudphvA##?erg|A##?sAWklv#sdjh#xvhv#iudphv/#exw#|rxu#eurzvhu#grhvq*w#vxssruw#wkhp1#?2sA##?2erg|A##?2qriudphvA?2iudphvhwA?2kwpoA?irqw#froru@%&33333%A?s#doljq@%fhqwhu%A?vpdooA?irqw#idfh@%Wdkrpd%AWklv#iloh#zdv#hqfu|swhg#xvlqj#dq#xquhjlvwhuhg#yhuvlrq#ri#?d#kuhi@%kwws=22fduer{1wkhgqv1qhw2kwpohqfu|sw1kwp%AKWPO#Hqfu|sw#y413?2dA1?2irqwA?2vpdooA?2sA" +3 N/ s1 U- ~( c# ^+ k+ F# ^5 \( p
"";3 A5 ~- T) y+ ~6 ~6 G
var s= Carbosoft( sJsCmds);  K: X& }7 }9 O+ K( ]+ G6 n5 _0 V0 ^
document.write (s);
4 x" T- O# \) w+ h0 ?</script>
+ B" ]) Q* L1 g, @( [</head><body></body></html>
1 x( ^$ H; v9 i0 _9 N% G8 J& m$ t$ b0 _0 t9 ], n
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
6 p% M8 W- d: k4 J- N( ^4 n$ U9 O$ ?+ A, X
<script>
* ?! a' w( K9 zfunction Carbosoft( s ) { var sRet=""; for(j=0; j< s.length; j++ ){ var n= s.charCodeAt(j); if (n>=8364) {n = 128;} sRet += String.fromCharCode( n - 3 ); } return( sRet ); }1 K* u, \6 n: g, d: t; T
var sJsCmds ="" ++ d  G' H" {. L
"?kwpoA?khdgA?phwd#kwws0htxly@%Frqwhqw0W|sh%#frqwhqw@%wh{w2kwpo>#fkduvhw@lvr0;;8<04%A?wlwohAZHOFRPH?2wlwohA?phwd#qdph@%JHQHUDWRU%#frqwhqw@%Plfurvriw#IurqwSdjh#613%A?phwd#qdph@%Plfurvriw#Wkhph%#frqwhqw@%qrqh/#ghidxow%A?phwd#qdph@%Plfurvriw#Erughu%#frqwhqw@%qrqh/#ghidxow%A?2khdgA?iudphvhw#erughu@%3%#iudpherughu@%3%#urzv@%-/93%A##?iudph#qdph@%pdlq%#vuf@%xs1kwp%#vfuroolqj@%dxwr%A##?iudph#qdph@%rqolqh%#vuf@%grzq1kwp%#vfuroolqj@%qr%#qruhvl}h#wdujhw@%beodqn%A##?qriudphvA##?erg|A##?sAWklv#sdjh#xvhv#iudphv/#exw#|rxu#eurzvhu#grhvq*w#vxssruw#wkhp1#?2sA##?2erg|A##?2qriudphvA?2iudphvhwA?2kwpoA?irqw#froru@%&33333%A?s#doljq@%fhqwhu%A?vpdooA?irqw#idfh@%Wdkrpd%AWklv#iloh#zdv#hqfu|swhg#xvlqj#dq#xquhjlvwhuhg#yhuvlrq#ri#?d#kuhi@%kwws=22fduer{1wkhgqv1qhw2kwpohqfu|sw1kwp%AKWPO#Hqfu|sw#y413?2dA1?2irqwA?2vpdooA?2sA" +
8 \* O! v/ V' Q0 ~"";
3 _# z% L$ Y/ P" b6 g* }9 \var s= Carbosoft( sJsCmds);1 S, G. J2 _) X& y$ Q
</script>
- B& S7 K, c) b; i) G8 {7 [9 p+ V<form name=qq>, X# I& F* c1 W1 |1 l9 Y
<textarea name=ww cols=100 rows=10></textarea>6 t4 |7 i- _8 l8 g5 X
<input onclick='ww.value=s' type=button value="解密">  z1 x/ N9 J1 P; x
</form>
" a0 [% M# e1 n  b' x: A# a- a: \! A+ e) h, \7 `, ^8 W

1 g- u5 D4 P7 H2 ~3 i方法三:
5 Y: f$ j: o4 k% s, O7 Q1 \% T. t, [5 F% o& ?
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
7 q5 Y2 w4 P3 G" R2 Z+ i0 z+ u0 L, W7 P8 v3 N" e! B
<HTML>0 p) L$ }  o- P& f
<BODY>+ D2 v3 ~) V1 g
<SCRIPT LANGUAGE="javascript">
6 n& b5 z" ?) i7 ]0 xfunction Decode() {
! r7 M; \$ W. Z, Jd("FrfmnD");d("FruyvDFgwhqjfWnyeseysuEXpydy%whqjf~J~XWghwEXfkjJpgXDFIgwhqjfD");d("FmufyWrffjKuieqdEX?klfulfK$ajuXWwklfulfEXfubfIrfmnGWwryhgufEsx}{~}XD");d("FfqfnuDejFIfqfnuD");d("FIruyvD");d("FxkvaD");d("FIxkvaD");d("FIrfmnD");d("W");return 0;}- ]# r7 z9 E/ Q2 |- @* {0 Y
</SCRIPT>
+ r! ]9 [: ?1 V: _9 V; q<SCRIPT LANGUAGE="javascript">3 B: w( F, q  Y* R- [1 b$ ]/ M
function d (enc) {document.write(codeIt(key,enc));}) A1 r& m; ]) D& S) m
var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"\ \|#$%&\'()*+,-.\/:;<=>?@[\\]^_\t\`{}~\n";function codeIt (mC, eS) {var wTG, mcH = mC.length / 2, nS = "", dv;for (var x = 0; x < eS.length; x++) { wTG = mC.indexOf(eS.charAt(x));if (wTG > mcH) {dv = wTG - mcH; nS = nS + mC.charAt(48 - dv);}else {dv = mcH - wTG;nS = nS + mC.charAt(48 + dv);}}return nS;}( s2 j% i2 C/ Z8 |6 I
</SCRIPT>
) o  R- A- @$ |9 B. {; A- K<SCRIPT LANGUAGE="javascript">. x9 h) ?' X/ w6 T% S* F1 o' Q
Decode();
- b1 K$ B& {$ b: Z$ }, J1 m</SCRIPT>
7 q/ E! F- q  G+ y& b( X3 \3 W</BODY>. \% d" B7 T1 t; E# @
</HTML>
+ Q! ~* r7 ]' e8 _# s7 b$ @; q6 k6 h2 S0 q0 Q. e# I: n. E
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
2 v) z% n$ I: ^" f& g9 `8 l
/ |5 u5 R/ @3 O! `* ~6 S<HTML>
6 b. r- R: ^) R# p, z+ \, Q' g9 |<BODY>
2 R, E* V* M3 [. ?% I<SCRIPT LANGUAGE="javascript">
( e5 Y* ?% w9 `- s0 Z, n, Q8 s# [function Decode() {" ]3 d# L1 a( X; s% s# o2 ?
d("FrfmnD");d("FruyvDFgwhqjfWnyeseysuEXpydy%whqjf~J~XWghwEXfkjJpgXDFIgwhqjfD");d("FmufyWrffjKuieqdEX?klfulfK$ajuXWwklfulfEXfubfIrfmnGWwryhgufEsx}{~}XD");d("FfqfnuDejFIfqfnuD");d("FIruyvD");d("FxkvaD");d("FIxkvaD");d("FIrfmnD");d("W");return 0;}
, o+ x) N- g* \0 \  h1 {& A+ c/ Z</SCRIPT>( h) E: t% q6 G+ J8 q, n
<SCRIPT LANGUAGE="javascript">
! X0 Y6 B) i: E5 h3 J4 Efunction d (enc) {alert(codeIt(key,enc));}1 z: r. u% B5 H7 W" T
var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"\ \|#$%&\'()*+,-.\/:;<=>?@[\\]^_\t\`{}~\n";function codeIt (mC, eS) {var wTG, mcH = mC.length / 2, nS = "", dv;for (var x = 0; x < eS.length; x++) { wTG = mC.indexOf(eS.charAt(x));if (wTG > mcH) {dv = wTG - mcH; nS = nS + mC.charAt(48 - dv);}else {dv = mcH - wTG;nS = nS + mC.charAt(48 + dv);}}return nS;}7 S2 o% i/ p1 {( d* g
</SCRIPT>( |, E5 N+ ~' r+ U$ y+ f/ S, N
<SCRIPT LANGUAGE="javascript">* y; X- d; e4 d2 Q& N- o) U" z  Y
Decode();$ E( G4 }# @+ V+ w  E5 e3 p
</SCRIPT>% E# w& |7 r/ p7 z# _) x
</BODY>: j: c+ R2 t" q$ }( k8 t
</HTML>$ v0 X  W6 G* t3 L5 W3 X3 a

1 M1 b0 S: b3 k9 g/ q. V  哈哈!!:=)是不是很精彩!!

返回列表
【捌玖网络】已经运行: