捌玖网络工作室's Archiver

admin 发表于 2008-1-19 23:24

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!ASL$b*O[qK~w
].iVw?Cf
RE{CJ~ n!M'M
方法一:
l)h]p8q,W&e^a'Q k'h&{2ax4M }

&i ?Gj Z;o   有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:6?$P;hZE/s}w
l7fx^)J:U_c z
<HTML>
6_8?{F {#G0W {RV <SCRIPT LANGUAGE="javascript">
izu;{T 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"
C%{#AgN)ZzCE var NewWords;k&r2s;m-A'|
NewWords = unescape(Words);
1Dt/{]3{b document.write(NewWords)Y:f.je:[8_!d#E
</SCRIPT>Iv5mE8`x0x8Wz$X
<BODY>
_7G"kEt </BODY>
"}.J.Y`)W </HTML>%l:yc v6v

5}Wz6V"k M   这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
(PIc:Eq p7Y
~+E n g5~#yR9].lY'D <HTML><SCRIPT LANGUAGE="javascript">#x6~.c'\bs
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"
-XL"FCJ var NewWords;
`n u{]:{ KI#L NewWords = unescape(Words);4SU z)R;uGe*LVO)T-`
NewWords=NewWords.toString();%v1W.w\4vh}
function password(){EQp4F"C0i6FDL
document.pw.txtpw.value=NewWords; aC-Cq3{l ?0~?
}rx0mv2[7K7|
</SCRIPT>
0kdWU;RK gb(Td <BODY>
)b n@8o:XkaNF3_ <form name=pw>1bu X'` d js5h
<input type=button onclick="password()" value="解密">B-{wvuKp0P&I"WO(|
<br>e?R[u^[4c
<textarea name="txtpw" cols="100" rows="100"></textarea> V[sGh _.q
</form>
7r9b6]b d*gb </BODY>3{4[ijpC
</HTML>
(?AhvD8kbr,t
/? K)v3T(c'QZ 方法二:
.x&S'HiR
{*x,n6?sk+{)?4`4~   有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
2^2hd9Th$l&rd
!taN'i_ Ov P <html><head><script>
W!@rXu2DS~.j 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 ); }3{ a]^I%H6V9e
var sJsCmds ="" +x ^r)_$w#\'jl
"?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#q@"B0P i:U
"";yc7v3q1Y#\ N)d`0@U
var s= Carbosoft( sJsCmds);
Eyd.FE Q document.write (s);2Yc|2ZM|
</script>
HW,P1d? </head><body></body></html>&W:[ia9e2L AX$]3?
M/T%z*q8f
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下: wt'{$lB)?}

3|3I,j+M? s-^ <script>(wQ ENRC2g
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 ); }
jIGf T*to5X,I9C+zK var sJsCmds ="" +-i i-lg aD%WVsOR)SM
"?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" + q8o.Y"xBXI
"";or&{g#R"kW
var s= Carbosoft( sJsCmds);^ B3{-T-i?&TG
</script>
"\V [7h ll X <form name=qq>Z*L-l*iX
<textarea name=ww cols=100 rows=10></textarea>
3G+t"M `9Wd@ <input onclick='ww.value=s' type=button value="解密">
Kr/x@K </form>&J0oT6CN;n(l

wrQ3e6Z dh&c
nh _H `:O 方法三:R3oj|@rx
N h ^WG1k4R
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文: wU0ezR5xK
nNdHu;Lh
<HTML>;r {3uSo%[} H3l
<BODY> K u,U.W4~
<SCRIPT LANGUAGE="javascript">
#{/G/tha5r!G#E{;[ function Decode() {D1[;e9n'v
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;}[v t C7i~ h)w
</SCRIPT>TU^T*\0x,[u"m4N
<SCRIPT LANGUAGE="javascript">
b3C5|%_B function d (enc) {document.write(codeIt(key,enc));}dXe,|#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;}
|pk/?_I </SCRIPT>
-i8r{Ut#Si-x <SCRIPT LANGUAGE="javascript">
+hF*^5RL:S Decode();
.aly.pL </SCRIPT>C}1k i$_*q8y-T
</BODY>
z*|'d[P|DH </HTML>
w%aM D(m)Wy5S
nJ`*D5VQ   还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:,q(eK m&?*p
o[*_7N+L
<HTML>
}(o2[:Xy2p;y)A6j <BODY>X:B/m PQr7N
<SCRIPT LANGUAGE="javascript">#x#S n"N.]Rr
function Decode() {`'\!^5m][7?
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;}
?y1`sY </SCRIPT>CR5e/\r,G&^(u%h9w
<SCRIPT LANGUAGE="javascript">Bp3[*N.`B5R
function d (enc) {alert(codeIt(key,enc));}
#M5RM!we{| 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;}uO5b ^\"E#Q9H i#H
</SCRIPT>
6ur}FZ4v ],xh <SCRIPT LANGUAGE="javascript">FhJQ?
Decode();
+}3IpO9J*r M </SCRIPT>*q+[}S^[S"f+B
</BODY>
i&f,\.T(O5qW </HTML>
;?-i6_Nk ?3n(}"pZw*N
L6\9s@ ~8|?   哈哈!!:=)是不是很精彩!!

页: [1]
【捌玖网络】已经运行:


Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.