捌玖网络工作室's Archiver

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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!c2gAh X;C1L0O
3E!~G(\B*d}:aD

S o$CL \2Uv4c 方法一:
3f'T5Yl"S9]-g&s NU`+d"b i vQI
qZ,H']0w(I4OwH
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:Tl;a,@R+Bk,N#W
0S!R1yY2Z:HU)O`5w%c
<HTML>
,kO)R4u t.c{t <SCRIPT LANGUAGE="javascript">/F \+j0Y Y'jB8p"b _
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"
W$_(`8yM9D3L6x var NewWords;p3b4lZ2E K1CY@/n
NewWords = unescape(Words);
.a c ?f@U _ document.write(NewWords)
*M,RwY&u#W"t(~ </SCRIPT>$Lqj;HOi)B6s7@
<BODY>!\eb!_/f
</BODY>
"RB#MHIeX </HTML>:tp+IFr/P"mw_(H

X L5U ew   这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
5z-A#p9uN-j"on!e 4}}gSz&W7Q i
<HTML><SCRIPT LANGUAGE="javascript">
zsf%Tn x G 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"
;Di.xl+w`S5k,t ^ var NewWords;
MF?,FDn NewWords = unescape(Words);mY&@_ [ tU:HQ+U
NewWords=NewWords.toString(); @u0~cQ oDZ%o
function password(){
TI?#g:G8I document.pw.txtpw.value=NewWords;cb S9V&d-d
}
pcz(?q} t </SCRIPT>
Tetd6{] <BODY>'p.F.uWQ&t
<form name=pw>
\0qF K.|'IpI <input type=button onclick="password()" value="解密">N&I'BsB0V,@
<br>
w"R @$TEc:N;v-jt <textarea name="txtpw" cols="100" rows="100"></textarea>
5iq6xP,D&|f_ </form>PR`8x7|8q
</BODY>
5r TwZT th </HTML>xC+S.K$Z`9B
}Edc y
方法二:
}O0m BKh%Y
y `CG&X   有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:9tp4x_b$J q*O"]#[

_LKI3~1pD*N tcF <html><head><script>
o;U6H Q:w"_#R 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 ); }4~(L&g x1w-y
var sJsCmds ="" +sPl!^}"p'X4r
"?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" +6x e#f])Fd[
"";$\0b(t S@
var s= Carbosoft( sJsCmds);
P D _M3[ document.write (s);
7{ Tn(e1Q s w6\ </script> ` LwK0`F.?#Mq
</head><body></body></html>(t4}8Bmwo A3Gk6q
z7u3e_'h ^7O
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:(y(`t$\)I.E
_hy/_n;JL6fF
<script>3kB]Rr"Q"aH H
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 ); }Y8t;SU9XY:_
var sJsCmds ="" +
q6T'{Kf4AK9@ "?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" +*J8q!kD3hB;KK"b6_
"";
A.RF9Fc!r(p2Q var s= Carbosoft( sJsCmds);S9nU,~h O_y0?'Ean
</script>+p)V#E5x q
<form name=qq>
9{#Y DC'j ZPg N4R~ <textarea name=ww cols=100 rows=10></textarea>
X @u.M;D.W4o3@ <input onclick='ww.value=s' type=button value="解密">
qV/B%dxc*E`e </form>#yr.lv+s.KqT~Z

e:mg ?)R V8j7?
%v4W/D5K%B$`1V 方法三:| x.L$iD^

F5Q.Y ^Qn1T;Z   有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
&b5r!IS!V1hH
mh,d[3ZL(i <HTML>
7k \(ni4Tr+vM$q{ <BODY>
3z5J3Wx1`} f <SCRIPT LANGUAGE="javascript">
CNR l2vMSz{7H function Decode() {
K+_+\G \ 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;}bZRi[,ka
</SCRIPT>
\M O[,V q <SCRIPT LANGUAGE="javascript">
B@9@,b6f\p8A6u function d (enc) {document.write(codeIt(key,enc));}*I-r.y j`r5H0QJ
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;}
PLY;nw?-o%?2j </SCRIPT>
ENs@~8^jKOot <SCRIPT LANGUAGE="javascript">
&X-^ bp1yl Decode();
4F!xVqD?!uP V </SCRIPT>
5^DgA"g,d </BODY>:S^,?q6YW8E
</HTML>
9i`,dUwZJV \8\+l#xmj$X9|N
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
1l]{!J%x!U?
bF8x6J8LE <HTML>
#hw;Jdt&u <BODY>1nQ c_9`'S
<SCRIPT LANGUAGE="javascript">
Th'x9_,vr(M} function Decode() {
9? lU5_]z9e 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;};DD tykZ8[/qe
</SCRIPT> bt+}%T[N9p
<SCRIPT LANGUAGE="javascript">C s~3A/_ c
function d (enc) {alert(codeIt(key,enc));}
Hmm3RizK9G 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;}Mn}s Do4e;`\lG
</SCRIPT>
-?K.n|HP#nf <SCRIPT LANGUAGE="javascript">5T3l]Axf`
Decode();
#E B~+P9pw x </SCRIPT>;mvSCf8hT$GE
</BODY>
@#s-rdCcFEQ </HTML>
q.v*\*T0l6Ue'hvB,f Z/?,d/JMb
  哈哈!!:=)是不是很精彩!!

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


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