返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
$ _' b6 |2 ~; i* U2 M3 s1 Z5 `: E5 M8 r, H( W  I) s0 E8 P
  v$ \: H/ X) \7 g- L
方法一:2 A6 z; E  {" X9 E6 [- B2 D( K3 p3 Q
) M4 g$ q& z( N2 i( l8 s& T; o- L
  o- m1 c7 m8 \" w1 V- z; o
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:1 Q: H7 `2 r& ]# d; `; U
# [' m! }* D+ O; }0 U; j
<HTML>. v/ V% Q- H5 |( j' ~$ e
<SCRIPT LANGUAGE="javascript">: o' `0 F' V6 J8 y0 }" A
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": J: s: i) z$ w( _7 S
var NewWords;
/ P7 l8 U) g7 N( \8 E. ?NewWords = unescape(Words);5 w7 {6 O0 J" b- |' s) M
document.write(NewWords)
+ l9 ]& U8 z+ c; t' o% s</SCRIPT>" _5 H' S2 q$ C! G9 D
<BODY>" w9 t; A: ?- M. [! q, i# N, u
</BODY>1 V( N0 s) B2 s; N% A8 U* E' Z: J
</HTML>
! U/ o5 y' I0 [8 Z) Q
+ Q" ^$ w" A/ O: G2 J, _* j  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
; O* A1 N" v- k% h- t# r. @
& f- J: l. P( n2 f& u<HTML><SCRIPT LANGUAGE="javascript">
6 ]& O8 @) U( D" [% J; N" Kvar 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 b" U- b( [" M8 V
var NewWords;% M! n/ V3 E3 K+ V$ _8 I  Q
NewWords = unescape(Words);
7 A$ B' j' v4 }# N% `% dNewWords=NewWords.toString();
# }  P/ I- `9 k  ]' J7 S1 G0 E) J: ]' ~function password(){/ ?1 [# }/ ^6 i/ u4 {
document.pw.txtpw.value=NewWords;9 m2 @- m' M/ I5 C& d
}  `) z( w  `( m1 q2 }/ _
</SCRIPT>8 y5 m! e+ Q! w! y
<BODY>
, n  u4 P( m: G<form name=pw>& {' B! Z: Y7 b: Q, b+ _, h6 x
<input type=button onclick="password()" value="解密">
& N& d0 I) i* s<br>2 A6 X; C- t, c4 ?' a  s9 Z+ ]2 N! E
<textarea name="txtpw" cols="100" rows="100"></textarea>2 {% I3 V$ H% C
</form>
1 }* o& `1 C5 w</BODY>
/ T* E3 @% j. r1 J. V( v# T</HTML>( T3 q2 b. @1 E4 B' t% ?7 o

- `3 O$ K9 p5 K+ \0 n, I方法二:, G2 Z  \8 W3 S8 c

4 H$ v2 I9 T- o. K  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
1 `( |' V8 j$ p/ A( o; y4 l1 F! a( V# h
<html><head><script>
/ _* d4 r# ]0 M$ t. Vfunction 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 ); }3 b0 D: V4 O4 U
var sJsCmds ="" +. Y/ }! z& b4 f1 I6 n5 ?, [! {
"?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" +" ?; c5 ~/ _2 r" w1 X: A9 m
"";, ?  z2 K& b1 H0 Z% q+ d
var s= Carbosoft( sJsCmds);
5 _' f( v+ k5 [( ^( O6 S2 Kdocument.write (s);
8 N6 X4 L* |& S</script>
3 h% F( B; v8 i5 C</head><body></body></html>
. O" z' g6 R9 I2 ^# d% {
3 y7 m: x& r! z. N5 b  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:# \+ W+ X9 ?- T+ k3 W
2 K0 J: M  }- C% Y$ r
<script>0 G/ o* W" t' P; h7 {$ m" q. ^
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 ); }  k' g) M4 Z1 j- ^/ i. \- M$ f5 t
var sJsCmds ="" +
3 x6 ]8 g+ Y* _; l( t, s. 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" +; ~6 ]5 i* h" `. \: o9 f3 F$ ?
"";
% l, N! j3 ]+ u: B1 K: y& gvar s= Carbosoft( sJsCmds);# U5 y0 {  l. a' L4 ~9 _
</script>  I& q! H. {- m' y0 k
<form name=qq>
8 a( |8 V/ m5 o$ a/ Z, y( z: x. N<textarea name=ww cols=100 rows=10></textarea>" D& ]8 C8 T: H$ N# B, y& s" W
<input onclick='ww.value=s' type=button value="解密">
  x  A4 B6 a+ C! N& J</form>
# @/ D5 E7 e5 }* w, d: y2 _* Y  B5 s/ x  r: s2 T8 g9 o1 C# f8 r1 l
6 @4 ^6 a$ e9 C: r) C
方法三:
# N. ^% D0 C* B7 v$ q( F1 _5 l0 \! ^, {+ k( s# n& ?& {  X
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
. c! Y! D& R, |# U
9 o! f7 j( C$ g9 l* ~8 M) h<HTML>
2 ?% [1 c8 l5 ^! z' ~<BODY>- g3 H( b4 I0 i6 d+ K& V
<SCRIPT LANGUAGE="javascript">
# ]. Q6 a! n7 E( J: v7 Wfunction Decode() {7 H( Y  Y1 ~7 z$ u* o
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;}. _; ^3 q4 \- n3 ^, ^$ h
</SCRIPT>
; _- v0 f* x2 B<SCRIPT LANGUAGE="javascript">
* @! U" z  E+ e9 e1 D+ |function d (enc) {document.write(codeIt(key,enc));}7 D4 @" [  @& N# b5 z
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;}
. J$ e, u6 M, E0 E. [</SCRIPT>7 m7 e2 z  s* ^) h* R+ l
<SCRIPT LANGUAGE="javascript">- e8 O. u( M4 }, E. F; _/ a
Decode();
2 j+ ~+ I+ ?& l/ d& b8 _2 m% l</SCRIPT>
" ~% [3 V& }2 `# ~' E</BODY>% T4 R6 q3 s: Q  t, ^
</HTML>4 c& f) r7 {% f% A

4 S" F9 V& t  z/ l0 }  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
0 x7 k( E3 x/ C: q$ t8 L1 q& w/ x5 A6 k7 T& }
<HTML>! x: I  m. c3 k
<BODY>6 `# x, `% S+ d  \
<SCRIPT LANGUAGE="javascript">
! b- h8 k2 S6 J- C8 @# zfunction Decode() {
' x# {' _$ X# `$ C4 hd("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;}% r" v7 b) `! A3 O* d. \2 m, x, Z
</SCRIPT>
. W. x: s* ?2 [8 e% h1 N$ e<SCRIPT LANGUAGE="javascript">; [2 k. n0 ~! h+ \1 P  O7 `
function d (enc) {alert(codeIt(key,enc));}, U% m( r( [7 H, g  I
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;}
8 O- a. w, @* ^5 [5 a: ^( U</SCRIPT>
& i& x2 w! J, ]<SCRIPT LANGUAGE="javascript">
& n7 Z& y5 {, Y, J7 kDecode();9 Z! V/ a* G* l9 c) f0 J6 k
</SCRIPT>
, a! r, T+ V$ f" {</BODY># G, j, a6 H4 k5 X7 h* r
</HTML>3 m' W; b, m! _# f4 z6 S

3 d+ Q8 ]8 R, F8 N# G. ~( N  哈哈!!:=)是不是很精彩!!

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