Board logo

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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!( z% u. z1 K6 q6 I" ]( O
* g2 f+ \5 D4 r, M1 w
( v& c+ z' d! v( ~- G
方法一:8 n! `# T' y, n& g$ j) L& R
% G% }  F- B: K1 s' _/ n

* D* }: m, z6 A; d& N  X, g4 ?# v  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:% o# J' C2 k) X) D3 e: l

; g, a. K8 h7 D% N/ K/ |7 J2 A<HTML>
1 P! j6 }# R; C- y. u6 I- M<SCRIPT LANGUAGE="javascript">
7 U6 Q: \1 O( V4 m5 e) lvar 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"* I4 b- v/ |* U: [9 d" u$ p  [
var NewWords;/ b% `5 Z/ _9 V
NewWords = unescape(Words);) Q. {$ d2 S* h+ ~7 Q. U5 l
document.write(NewWords)/ m: y% `& f$ n# ?5 a
</SCRIPT>- U9 S( [4 ^. T% ?
<BODY>$ P& D0 F/ b/ X7 z2 G! ~
</BODY>, h+ o# T* f- @2 }5 X
</HTML>
6 Q! `# m' e' j2 G0 S% s' H! F1 }4 X
: U" T7 X0 p% j! f' M; [  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
  E( g  I( O1 i& n4 R2 P( w/ ]' P( y8 L7 d4 B
<HTML><SCRIPT LANGUAGE="javascript">
* j4 t3 b! U6 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"% J1 b: W' r# d' F* h. @! ^
var NewWords;
% b/ v# P2 A: D# nNewWords = unescape(Words);: c4 k7 I" Q) N; O
NewWords=NewWords.toString();: M; p# I  W$ v. u% D" p) U0 O
function password(){& T, ^$ ^6 ^0 z  |* f
document.pw.txtpw.value=NewWords;
! p( q3 v0 h2 @3 J; `}+ [# u) z8 G6 [2 O8 O
</SCRIPT>
  L6 \; o5 J3 r# K: N. {<BODY>6 e+ h0 I5 H% r' D: O" S2 C
<form name=pw>
( M. q8 [9 N5 Z) v) V<input type=button onclick="password()" value="解密">  I9 i2 m6 \/ S7 s' x2 W
<br>  C1 @: q6 l# d6 U( O# n3 T' n
<textarea name="txtpw" cols="100" rows="100"></textarea>8 Z& h* ?$ ~# }$ p
</form>1 ]' H* |1 ~4 A# n# F; E4 h+ p- d
</BODY>
8 f! o: f) O* g" g5 \</HTML>
8 N3 d" A6 e$ z& z0 x. i
- G7 L+ S/ k" i- L- m0 E方法二:+ ]' c4 ]/ o, P( c' x- t

& q/ L9 }% h3 D  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:; }5 c7 [& _' p8 U0 I
3 |! G  @8 n+ ]( n( F9 h8 `
<html><head><script>
, I9 t" f, F" Q, ]2 Wfunction 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 ); }# p8 X5 Q& y. Y
var sJsCmds ="" +8 `. l7 M. C$ v8 |
"?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" +
" G" c7 T3 S2 n- E! w4 r3 m; E, V"";1 \9 v' o, @" H: a1 a
var s= Carbosoft( sJsCmds);6 K6 W% c: h0 R$ v% I
document.write (s);
8 l  I* [' k, \- K</script>
% P. y0 X- v- K0 M# F</head><body></body></html>
4 [* v: d0 H1 A$ A" ~: x+ f- P. h4 g# C+ G) m
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
6 Q, ]4 ^. T4 l+ ?/ O- F% U% z1 A$ F
' M" E( e/ f2 T7 p, v/ n& J% q% @, z<script>
( b. U2 Y; j7 s* S4 V  \, i* @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 ); }
" }, p, |! W6 @( L* Tvar sJsCmds ="" +! ~) n0 ?8 ]0 V
"?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" +
5 ]  t5 s1 l8 m5 R5 |" u"";( f0 `' y8 x$ y8 n  z/ Q/ t
var s= Carbosoft( sJsCmds);. L) z8 p: Y' t
</script>
7 I( E% @: `; ^1 g<form name=qq>  w' D* M  [& f
<textarea name=ww cols=100 rows=10></textarea>/ {) H7 w& [1 q7 h5 z# i
<input onclick='ww.value=s' type=button value="解密">
7 V+ M% M0 s5 k7 C9 o- J7 S" v</form>1 p* G( P7 A1 l5 N

1 s8 ?* \$ X# [; ?
. E4 X7 w" E; X/ |. B方法三:5 [; X/ @  J$ i3 |2 p0 N/ J3 J/ j
! g8 z' v( ]/ k% G7 n! T
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
; I* d5 \* m1 B( i
2 f, K. X0 @: M; U<HTML>
- J1 X2 \7 q) q8 a1 P<BODY>
. d( e, Y4 }, r; H<SCRIPT LANGUAGE="javascript">! s* W- z6 e+ I0 d' s2 w4 J
function Decode() {
% \: c; n; C: a* ^+ h7 sd("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;}5 j4 c/ f; u. H2 F# Q1 u. m* @8 x" z
</SCRIPT>
0 E; X6 r3 {: C+ P. B- |<SCRIPT LANGUAGE="javascript">2 q, K& R9 F* ]# A& v
function d (enc) {document.write(codeIt(key,enc));}
1 y; K3 l; |6 ]9 U, B9 ~2 p1 xvar 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;}1 J) j+ \8 z8 L9 _  Z4 ^4 q
</SCRIPT>
( p6 R9 S; y2 S# \+ H<SCRIPT LANGUAGE="javascript">
, r# y6 e) I( DDecode();
8 v9 v) q8 w7 A" V</SCRIPT>
' [0 A" ?  Z' T0 \- @</BODY>. p( t0 P  ?$ ~" {- \  J/ F
</HTML>
- o4 s( Z! J7 Z% O' ]$ z3 A* H$ A& A3 Y7 g7 s9 R& s
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:# c( C9 y3 Z# L  b& J

6 C, D0 S6 n" D! ~<HTML>
0 q8 n  m* N5 q7 I" j# j<BODY>7 Z7 Z1 u2 Q/ f- w0 x0 o
<SCRIPT LANGUAGE="javascript">! B" G9 J2 U! W$ c4 U
function Decode() {% Z3 O. q8 @) K8 b. a
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;}
0 w* l+ L: h+ x  ]& c7 J' j7 F2 G</SCRIPT>: S6 p; F$ z7 t
<SCRIPT LANGUAGE="javascript">
+ G4 [! w0 {* l4 |- v; L, Qfunction d (enc) {alert(codeIt(key,enc));}
7 `# }/ z0 q5 J( K, Wvar 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;}
- L% p; a" b& ^</SCRIPT>
# |# D3 O% f1 c# T  w0 t<SCRIPT LANGUAGE="javascript">, A5 J. H0 Y6 \- f
Decode();' S8 w- W- Y8 g2 s
</SCRIPT>
0 D# l2 I8 {1 ~: x</BODY>
) Z( n2 L; a% ?6 b) U' p</HTML>1 t1 q" h+ v2 N, Z9 K
& _  R5 _- o# Z) i
  哈哈!!:=)是不是很精彩!!




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