Board logo

标题: 网页制作中页面的加密和破解 [打印本页]

作者: admin    时间: 2008-1-19 23:24     标题: 网页制作中页面的加密和破解

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!7 |) `/ S% `* ~1 ?" p

6 }6 o! }* n7 Q, d% X" _7 C8 B
2 O4 d3 ~  P5 k" N: o* h3 D方法一:8 _; s. M! V2 o/ z7 }3 E. w9 z
3 s# k' G6 P6 h# V6 V: C6 m: _
' S& Y, K4 Z9 V3 Z7 a
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
$ P4 q" U5 @. [8 m6 ]  d) {6 b, o# r! d$ W
<HTML>
# p+ w6 u  |" L! W& y' J<SCRIPT LANGUAGE="javascript">: T4 B& d- }5 L4 Z1 X
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"4 C- t: b2 M* r& E
var NewWords;
0 m$ x8 O8 o& u: u' l+ c' jNewWords = unescape(Words);
$ b1 m1 j% U% I9 H- g" u+ z7 b* jdocument.write(NewWords)9 _8 M5 G7 r9 L$ e
</SCRIPT>5 w: A  B' a$ N8 a) _, D3 {" w
<BODY>
8 l, ?+ N' r( v8 F6 K</BODY>0 S9 w( M9 G( K; u1 j2 g, G5 |
</HTML>
: G0 M4 i. z: a/ M* w" F- K. j6 V+ O
; Y8 A- ?! z$ i& \  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:3 X1 D7 A3 a' `# I

" g- T& r& p1 ?8 w/ z<HTML><SCRIPT LANGUAGE="javascript">
$ _( r: ?+ j* O# V, p; ~4 U2 Q3 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"3 [, Q, Z* [$ D6 o2 m9 o7 A( q
var NewWords;, s0 C8 B% J( `9 b6 G
NewWords = unescape(Words);$ Q: W; W. L1 Q! q3 b0 c0 V" s4 p
NewWords=NewWords.toString();% `! e( ~2 I8 Q
function password(){% R1 J2 T5 N0 b, R" Z
document.pw.txtpw.value=NewWords;
( H  m5 \* _" f6 R, H$ P0 g: ?}9 {4 }3 K( u1 L8 D) I! j; B9 C
</SCRIPT>. t2 h3 e, N; ]( \. F+ B5 Q
<BODY>
" d! N( |1 z8 G3 x% y* _8 Y; ]<form name=pw>' r& p4 f$ h9 u. w
<input type=button onclick="password()" value="解密">! ?: |! k* X% Z2 ?3 f5 O
<br>4 I  P0 R! g% y9 C
<textarea name="txtpw" cols="100" rows="100"></textarea>4 Y. M- F- a% E
</form>4 H( R- q. n( v
</BODY>
. [3 X; ]6 p7 n. {</HTML>
9 B" M7 T, z2 R7 V1 b0 G  I. A) N+ Z
方法二:( C* n( @1 `: a  x6 ^
5 W5 i8 @' Q" `% ?/ o7 p4 ]2 }
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
& O' _! z( j* i+ q* P! N3 w" V2 `  j1 E/ u- e  N
<html><head><script>1 U6 l0 O6 k6 t! f6 }
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 ); }
& y( P" b- H) z. h% k6 }4 vvar sJsCmds ="" +
& z# F# T& n3 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" +
" p! c# f! K5 N% {& j) o' j"";; w1 x0 y" ]* c( ~+ S: k4 r1 e
var s= Carbosoft( sJsCmds);
$ V3 m% C& ]2 P9 gdocument.write (s);
" h! G- x8 X+ b# [3 m</script>
! D8 R% p! h8 R( {* K+ `</head><body></body></html>
% l0 _8 d- S  K
/ V. Y7 e% n1 U; j, ^! e  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
9 M7 a+ A7 T' u/ b+ q+ U: ?
8 o# `. _  c' l  j2 K! S4 u& s<script>3 o4 E; d4 u$ _/ ~; V5 X  }
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 ); }
& a' w5 f9 h4 N. Zvar sJsCmds ="" +0 ^8 r+ g7 o" m
"?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" +
  u8 x+ n( b6 X9 V"";
- e  M. Z( T, ~$ yvar s= Carbosoft( sJsCmds);% e" I- Z  c" d0 w; w, m
</script>
( t& `& X8 n7 ]2 c* D  i5 _<form name=qq>7 \" M5 h2 X3 ?/ G" j; x, p
<textarea name=ww cols=100 rows=10></textarea>
  }& P% |8 k+ ~" ]5 o& T2 U; Z+ F<input onclick='ww.value=s' type=button value="解密">1 x; q6 A" u3 r6 q5 r: U
</form>
, m, [- B' X, t6 [- _4 c+ ^, S1 u* U5 x
0 b6 e0 Z% [! J2 _8 Z3 Z
方法三:
( `& E4 l$ U& I% c8 \4 X
6 ]# \2 i! Y& v/ T  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
7 {, ~/ ^- D2 D( l- c, V! `/ B7 {/ n) z2 ]4 P* v; ^/ x
<HTML>2 F; _, V! O! Q! a# S
<BODY>
/ H% ?& a5 r/ ~7 W<SCRIPT LANGUAGE="javascript">
% h( c: a( S& L  Yfunction Decode() {
( J1 x4 q" n0 O2 _& Dd("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;}, r8 R( M2 [4 F2 b. A
</SCRIPT>5 c9 j* r, f& n0 \% c
<SCRIPT LANGUAGE="javascript">& u. j: {; O4 [; K2 B- ?, Q0 M
function d (enc) {document.write(codeIt(key,enc));}
7 V% p9 \5 q+ L8 o8 u; Qvar 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;}
5 e3 `, _+ q5 `% e& N</SCRIPT>  y* ]% t# P: G5 z9 v
<SCRIPT LANGUAGE="javascript">
4 b( O5 H" p( T7 J- I- S; c  ^Decode();+ F$ w7 g/ Z" O7 s
</SCRIPT>* ~3 m) i0 ?3 s8 G$ K
</BODY>" S  j' r" Z1 A9 K) M5 w. o
</HTML>
$ r+ e! l8 ]# f3 ?; [/ K( w& d. C$ k, v: J# p
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:: ?# @* S7 n9 v  s4 \8 B0 `# g
" f, C8 p6 S; Z6 ~* H
<HTML>/ u/ [- A$ c/ m
<BODY>% D$ F/ x$ x. v/ A1 D( [$ ~# d& B0 S9 G
<SCRIPT LANGUAGE="javascript">
' o) a1 k+ l( y+ d% E8 c+ r1 Jfunction Decode() {/ o6 S, c; V/ Y* u
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;}8 P. O4 P5 c, D5 S2 V
</SCRIPT>& l8 d# m6 k  h( M) A" Z
<SCRIPT LANGUAGE="javascript">
# b5 g1 u3 U$ e( d# U* yfunction d (enc) {alert(codeIt(key,enc));}
' |7 \; L& [0 D" Y) F& 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;}& A, l  O, i9 B2 T2 [. ^
</SCRIPT>. g( h& Z* m+ o& N
<SCRIPT LANGUAGE="javascript">
/ T& K& [% f9 T4 A+ J4 }Decode();
0 L' J% g* h( @# p, Q</SCRIPT>
6 i5 c  W' a: ^- [* ^9 m1 ?% R</BODY>
  X: y" l7 k, M; r$ v</HTML>% Z* ?3 T8 ~+ y  d2 o

1 J$ ?# R5 S" O; B! e6 T  哈哈!!:=)是不是很精彩!!




欢迎光临 捌玖网络工作室 (http://www.89w.org/) Powered by Discuz! 7.2