返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
: n* `6 g6 J: T: g" A3 G+ M9 i1 w# z, o% C; h  C  p" s' j" c- F7 r

* Q# r: {- D4 @7 e- ~" z方法一:& V* L) P& z6 V9 V6 V2 t

8 ?3 f8 n2 |# ?+ u8 u6 q
+ J' E) s5 p; E. l1 {  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
6 l6 p7 X* P" e7 N
2 z$ Z( L2 d1 S! i' J' a- n$ U<HTML>
* M3 a1 r! C% X& R7 x* V$ ^<SCRIPT LANGUAGE="javascript">
# q1 y* v4 Q1 d& P2 t' A5 `! rvar 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"* w  ~3 Y  t# U
var NewWords;
/ D2 C2 ?+ I' b; K3 b; g& hNewWords = unescape(Words);% J+ p' U% D- Z
document.write(NewWords)8 m. c5 h" s0 w  v$ y' z4 X
</SCRIPT>$ U/ V# I1 ^3 P  B8 [1 U
<BODY>% o, t0 x. m( K) T
</BODY>, p0 R$ h3 _( @5 I
</HTML>- G" R1 A- X8 {, h$ m% y
" c; [' y, R2 J) P6 m5 k
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:5 |0 s3 h# w4 B+ w0 ?4 v1 l

; N$ P: H1 Y& C: {" ]( u* h) n5 v6 B<HTML><SCRIPT LANGUAGE="javascript">1 `6 Z1 D9 ~, a+ s
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"
/ {3 K5 I9 Z1 a6 H- D5 pvar NewWords;3 p" E8 v9 [; F0 _
NewWords = unescape(Words);3 C( j5 T9 @+ ^* ^% J. w. _- g, V
NewWords=NewWords.toString();
+ l! o( Q% [+ X; @, yfunction password(){# ?3 i. L+ \  w. ~
document.pw.txtpw.value=NewWords;
! n+ v( R$ H# L' f' v" C: j, g}
: r2 h/ _0 Q) g$ D$ E% Z. u</SCRIPT>
% [9 v1 F6 g% r5 ?) i& |2 |- a<BODY>
2 F# T% `, ]' B1 i2 r# u<form name=pw>) v& U) ^; j5 ^9 i( \
<input type=button onclick="password()" value="解密">
- I1 D: ]9 U' J+ E1 t" @- N) i<br>, I3 `3 e2 \% M- a* k
<textarea name="txtpw" cols="100" rows="100"></textarea>
+ q; f4 R0 J  [9 g; t6 F9 Q' e9 l</form>
* F* y* e  A# g9 g( o</BODY>
( l8 `4 d$ q% R$ w$ l</HTML>
, v1 h. G) Y$ z# t7 b/ J+ p8 [1 ]! t6 e. t  c2 C1 e" g
方法二:
7 {5 n! e2 z4 S! O  b& D5 }" O0 t5 H; `* K, Z5 z/ i1 U; h) L4 j
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
& ~% h2 ~2 e/ ?
& r5 l8 }, F; f8 N, X<html><head><script>
7 M8 p+ L* _+ d0 z+ W  N$ L& Y. Xfunction 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 ); }" z4 m' Y  H  d  i3 l
var sJsCmds ="" +
: w# w+ N! H- T; m/ z"?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" +
' ~0 t2 U( }5 y& }3 x"";$ r9 F2 ^: H" e9 ?  `
var s= Carbosoft( sJsCmds);
6 e' `+ _: Q! |" d& {' Y% O3 hdocument.write (s);
0 r7 k9 m8 i/ i7 l0 ^- I) Z</script>1 t/ M4 ~6 C9 t" R; p! ]+ g. O
</head><body></body></html>% ?4 V: W) H" [! s

% Z9 a  H! Q2 [, b7 ~* x# s  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:5 b. K9 q8 @; L7 Y

. d  y, n9 S  n+ ]<script>
7 {( V& u, X5 G7 {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 ); }
) g" o) |; q/ ?var sJsCmds ="" +
3 [! j7 ~( _5 [; C$ K( U! Q"?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" +
% g3 _* m1 G2 ~3 K"";
) a2 |* u5 E- X9 M. |1 p# bvar s= Carbosoft( sJsCmds);; p  f0 _0 Z: l' Q) O
</script>
# P. y+ I" l4 @8 `1 k<form name=qq>5 u+ Q; g- }% O9 B
<textarea name=ww cols=100 rows=10></textarea>+ j* X0 j# N( J( w8 b) c# ~
<input onclick='ww.value=s' type=button value="解密">7 O0 y; _8 K) |
</form>- t& C7 H3 P, p6 _
$ ?7 c" w) h8 p9 Q1 `4 s& Q* c- b3 k
0 U" c2 b* ~& C. }8 o: ^
方法三:. x. ~2 u0 }! N; M8 g; i" {

7 F+ {* m; u3 e! Y& u* h3 U( ~7 y  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
9 S! j6 `0 B/ h1 I' G* y: i3 H3 ^" C" P4 v# u
<HTML>
0 |" j3 y7 V" D, E0 G+ G8 s, b<BODY>
6 \/ f; `3 i% K+ _7 X<SCRIPT LANGUAGE="javascript"># u) C( J; B5 b4 Q+ o! F3 S
function Decode() {4 k8 A" j0 j( D, R8 y
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;}. L) h, A8 R" o" B- t
</SCRIPT>. Y+ X3 R- L. @, C6 w
<SCRIPT LANGUAGE="javascript">
& r- v3 w6 [7 N3 @0 F& }& |* ^0 Rfunction d (enc) {document.write(codeIt(key,enc));}
: n5 e6 L7 }2 U7 yvar 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;}' z( o% E# C/ X; g. e  J
</SCRIPT>
2 e# z5 l0 i6 Z<SCRIPT LANGUAGE="javascript">
% ^! k6 Y. l# h: P/ I* _" \* mDecode();3 C; ?! n4 ~* q* D4 v1 i4 _# D* ^( J
</SCRIPT>* X7 w9 y* B% ^  E. x' V7 E
</BODY>
8 |! c7 ~& {; `: {2 \</HTML>
; x9 F% X0 D1 \9 F9 ^+ Y% i
* q! F& S" z; I: ^9 N' P9 y0 \  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:! w7 l9 Z5 k! `$ @- D7 Z; X# C
6 w  L7 c, |5 e: Q3 g7 v0 o( K- `
<HTML>4 B5 H/ C/ w+ Y" p+ g0 w. b
<BODY>
( t" D  m3 ^& ]% J+ y2 Y5 E! |( n<SCRIPT LANGUAGE="javascript">
  Z1 j% @/ t8 k& ~( Kfunction Decode() {% ?3 j9 @, X0 ~$ j& f8 }, M$ O9 I
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;}
* K+ i& b7 p& Y. T; M</SCRIPT>
4 C' t3 C) g( \6 Z0 R<SCRIPT LANGUAGE="javascript">
  F2 D* k* c6 h3 ffunction d (enc) {alert(codeIt(key,enc));}1 J1 J, M# M/ R0 Z* R% y* `8 S
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;}, h/ P/ M$ I& r5 O
</SCRIPT>3 n* W: w8 ~3 g
<SCRIPT LANGUAGE="javascript">
6 k  i1 `8 p$ bDecode();
! z9 a$ k4 [+ T</SCRIPT>, E! j- T! ~; }# k" S
</BODY>
/ ]8 i/ K+ d, D( C5 B</HTML>
0 H' E& \9 ]) L+ b1 X! U
1 U- C: O: }6 t+ o+ `* i" X, Z  哈哈!!:=)是不是很精彩!!

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