获得本站免费赞助空间请点这里
返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
' Z# p+ f7 A. {8 t5 [6 j+ Y3 _  g5 h5 S
8 I$ B: g6 A- E& p' ]( T6 S* N
' m5 J* Q% H4 _# F- u( ]方法一:9 A0 _6 [3 ~: k  J$ U

$ a, U3 y! _9 s" f8 J3 P
- a2 p3 c* @: L* P+ [7 ^& i( j* i4 H  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
, d- c3 ]5 T5 H) p; ?4 M8 v# K  V3 A$ G8 v
<HTML>/ n+ E  s# H* Q+ C2 L
<SCRIPT LANGUAGE="javascript">
$ w) P: y7 q( uvar 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"2 G7 E4 a0 ^0 u$ ~
var NewWords;
5 x+ p) m2 L. d$ q" W; w. dNewWords = unescape(Words);
* i% K( b3 T0 Tdocument.write(NewWords)3 N7 u* D1 J1 a
</SCRIPT>
4 H* l" _+ i' V5 C<BODY>( u% d% x6 u, R9 `, o
</BODY>
9 D! [! f$ W9 M3 P' ~$ Y0 d( K</HTML>  A$ S) V3 w9 |) K
' K- A% V* J. \4 `* K+ ?3 S, h! J
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:. {/ r( R* s, n2 \* P7 p  r

! P8 n1 q! x$ I* l( p, P, c<HTML><SCRIPT LANGUAGE="javascript">4 @. W6 F# [5 j1 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"! Z1 d: b5 y3 P3 w2 \' d: T) d* t
var NewWords;
$ v1 ~+ j+ T# K& m6 T- X" lNewWords = unescape(Words);
/ F( e9 }4 C* t: M6 \NewWords=NewWords.toString();
, ]; ^6 u. \/ A3 @1 @! |; _function password(){9 J- f! j. j% i
document.pw.txtpw.value=NewWords;! k% a/ E8 Y6 A; a* V% u4 F
}, |/ C8 |. v& ^
</SCRIPT>
, p7 [% M2 l0 F& J1 F, L<BODY>
9 r: g# X4 d# |. q" l0 D<form name=pw>
1 t/ _- u0 X, q+ g8 ~<input type=button onclick="password()" value="解密">
( O; n. V8 `9 Q9 v. F+ Z& `<br>
; }" w; @5 c8 w- w% Z5 d4 v/ ?: d5 R- `<textarea name="txtpw" cols="100" rows="100"></textarea>
& z9 G% L+ a) h& r# I</form>
" u9 C" B' ]6 o8 Z2 L. |/ V6 Z' Y</BODY>9 T7 q& l+ }" r$ F2 f6 S
</HTML>
  A$ r0 ~6 c: N5 Z, N
3 U0 H% ?: x3 _方法二:  R) y! d, `2 M9 S
" g- U" l1 Y6 P$ |( F
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:8 A  C3 x1 P$ B0 @7 ~: Z( r) t
8 J. R6 U/ }. L0 Z
<html><head><script>
1 `8 T0 V+ P3 f2 T" r9 l& G4 O8 Y5 sfunction 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 ); }6 u- ?8 A, q, |! w* b4 Z% O
var sJsCmds ="" +7 E* F* ]1 k0 n7 w* W$ [7 S
"?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" +
- E3 H9 L( D4 g* }"";* G8 B  Z0 X  ?5 l% g
var s= Carbosoft( sJsCmds);
) B( M6 s4 j3 c5 U# edocument.write (s);
9 `! w9 a0 X: R% B4 M' Y: E</script>" e5 s. p- U. P. D
</head><body></body></html>+ u: N! B. j1 x! c

! L& f$ e2 ?1 x- D  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:; }7 H6 ~5 w% u# X8 E

* i! M/ O: d; [4 ?<script>
7 a  w# G: K5 C5 C; \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 ); }$ ]9 i7 k8 x' Z6 w! D
var sJsCmds ="" +: W: O, `# I  z7 D# m- f
"?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" +
, ~* j( m8 Z7 u: Y0 C+ w"";
7 W1 g8 b& s6 ?2 a7 g% Kvar s= Carbosoft( sJsCmds);
) Z' w+ p. }. B( w& p/ a</script>! E; @2 z+ l3 b
<form name=qq>
9 Z8 ~; K6 i7 n, k7 ?/ T<textarea name=ww cols=100 rows=10></textarea>& m6 D& Y, O6 e! F/ A
<input onclick='ww.value=s' type=button value="解密">/ A9 r& ^3 c4 i% d% _
</form>- q% U# B/ V. a* \
$ i) b  \2 {0 E/ K
+ A* Y, G4 h' x+ s4 d7 g2 q2 U: M
方法三:
# u, W; o$ O  }
( o$ ], {2 s& }& I9 W) V  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:; u+ j' l  Z2 b  U) T4 e
0 Z7 [( o# M# z2 n
<HTML>$ B4 e2 `* _1 l. U7 J
<BODY>
8 v  t, J! t1 k8 C7 U<SCRIPT LANGUAGE="javascript">
& s0 C  D% [' }$ U" b9 Xfunction Decode() {
" p) u! K' r0 td("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;}
* j& ~& [5 y6 J% d3 F</SCRIPT>/ Q$ o& L2 C! }
<SCRIPT LANGUAGE="javascript">$ i/ Y. W- [0 ]+ I& `2 W7 n2 ]
function d (enc) {document.write(codeIt(key,enc));}
# V( D; \* A: A/ c. }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;}
: V& P3 H. H' Y; H3 q</SCRIPT>
5 h% l' M8 Y* ?; x% y  c7 H<SCRIPT LANGUAGE="javascript">
/ q! |6 z: s; }- s2 LDecode();
; A1 l  [% S7 B</SCRIPT>
7 |) u. U; E/ c- F% l2 G</BODY>
# U  Y/ r4 G+ P# r! C9 j- b/ V7 F</HTML>
# {- [7 k9 G! |& J3 t. e- d& J
8 @' `* R* B- p3 [  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:* T, I5 B; N0 ^0 `5 {
" C( R' E) X4 \1 `0 T7 E
<HTML>+ }/ m" t- @  W: J, n- ~" Y, c
<BODY>8 c$ }" b1 A8 Y6 a
<SCRIPT LANGUAGE="javascript">
& e  W( h$ h. v/ jfunction Decode() {7 k8 _8 S! \7 h& h/ d( c
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: n- B$ u  y) {: ~9 \  [% d; z' O4 ?
</SCRIPT>. |- F* I4 [! O
<SCRIPT LANGUAGE="javascript">( }0 C" ?3 z: j; j" D
function d (enc) {alert(codeIt(key,enc));}
# G& d( ?% v9 Ovar 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;}
  s/ T# k" v& J( v( r2 P; Z& [4 Y; K</SCRIPT>. |' l' o3 n7 k. T6 P/ w$ \1 \% p
<SCRIPT LANGUAGE="javascript">6 e% r# ]7 G, T2 P
Decode();( h: _" ^9 k# V) V2 O5 }$ I9 d
</SCRIPT>; p8 K! m1 p1 a
</BODY>7 g7 [4 e" e2 e% y
</HTML>
( P& i4 N* X, s- ?. p% `. [
# t( W" a  m1 Q) Z& D, j  哈哈!!:=)是不是很精彩!!

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