获得本站免费赞助空间请点这里
返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
# A) k/ d- I# q
5 c/ u9 S2 |( e$ u% I
. v% |8 j. L2 v$ _1 L方法一:
/ t3 g, K3 a5 b8 k) l, E& \7 {2 {' E. B/ _+ t

1 C1 c1 A- {1 ?8 A0 v4 f% F$ i& p; e7 l1 ^  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
2 Q5 K. c  j3 Q$ O" _+ Y( `* A
<HTML>5 {  X* X8 u' G; {, u  k
<SCRIPT LANGUAGE="javascript">
- M: C* |1 {- Wvar 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"# l8 V- D* _. m  g
var NewWords;8 x6 a: [8 l3 K) _# L8 s( q
NewWords = unescape(Words);
, J: T/ V; p: q. C! ydocument.write(NewWords)
! M1 O- q6 Y1 }! I( X. {8 ]</SCRIPT>
; K# N- x) R: d<BODY>
8 a5 U4 P; ?; n6 M" x7 Y, F</BODY>
) z; ?5 ~' P0 t/ D5 S4 v  ]7 ]/ I</HTML>4 E, T6 \% q1 N1 h# k  G

/ H) N; f' u" E9 v) R  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
0 t3 P2 @: }, ^; r
; l: J4 h4 z- p9 O. u<HTML><SCRIPT LANGUAGE="javascript">
; V: \) ]) U$ h2 {2 pvar 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". r% i  h, i# W1 o8 t. }. E
var NewWords;" w3 t0 K7 K9 k; I1 @+ ^
NewWords = unescape(Words);
2 ?1 x0 Y  j9 [* o* J6 GNewWords=NewWords.toString();6 @# x( m' E1 Q8 _6 i6 o: W5 W
function password(){; o. q, X) t  _1 w; q
document.pw.txtpw.value=NewWords;
6 _; h) H4 M9 N1 l2 u4 @}
! G: z8 }. \) w) P( T</SCRIPT>
+ A  V8 V1 Q2 @( \9 S% J" ^<BODY>, A1 A6 p" K' s. a* N8 s. o- R
<form name=pw>! V$ ]9 p+ u+ e4 ~' L
<input type=button onclick="password()" value="解密">
& |: P9 T- H% y, T2 n# U( e<br>
8 q: N; _: N+ X& |7 v" e<textarea name="txtpw" cols="100" rows="100"></textarea>
1 j9 ?1 ~( R6 l' d9 n* g</form>! y" Y9 b0 e/ a! v& u/ C' E- N, P
</BODY>5 Q# E/ k* b1 m7 k) s
</HTML>( L' J" _  I5 a/ M  ]6 q* M0 Y
$ V4 _7 r. V/ e( ]: [
方法二:& M! v& N4 Q# c' L5 i) L

4 R# o0 Z# @- n# q$ |8 N% c  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
' M7 P4 k" g) P  g8 S
. B$ x" X% m8 y! q) v<html><head><script>
) F2 O( z, B* M$ p, c- 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 ); }
0 s, P4 A* J% ~0 z" tvar sJsCmds ="" +
# C- Z- b' Y1 |1 R2 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" +' ]8 O+ A0 q0 _1 r5 l
"";9 A+ P2 @" g5 g  Y
var s= Carbosoft( sJsCmds);% u8 k5 o0 N2 L# r# P
document.write (s);" O! I! Q% |9 G  N4 V5 x
</script>% f3 B. E5 @/ p) t1 y7 s- F' b+ j2 `  g
</head><body></body></html>5 |3 `- z5 H& u3 W3 x8 W

; X0 |. ?; K& w0 b9 u6 [  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
' m, |6 V" h! d( P# B) i
* Y: ?1 S$ J. J8 K<script>
5 Y  X' m* y/ q8 S+ [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 ); }
% _; n0 q4 V2 u( mvar sJsCmds ="" +- r! N3 u. m" E
"?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" +
* [* W' Q2 F" ~- Q1 ]2 M; |5 c"";
+ g5 Z2 O+ _  n$ f# M: a) M8 kvar s= Carbosoft( sJsCmds);
7 V+ m5 s# D" t</script>1 e. u( R! S$ A) f+ n
<form name=qq>
) W0 s( V, p3 }7 g0 J<textarea name=ww cols=100 rows=10></textarea>
' S/ s' S: w: ^& R+ B<input onclick='ww.value=s' type=button value="解密">
  Y5 S: Q3 K- x; b* f2 M</form>  I6 @# b8 O% t9 M6 f; g
- u4 u  m5 x6 v6 Z

! G( s  k0 T7 k" T4 _) x5 u/ i方法三:
+ X. ^: \: F+ Y  j7 w
9 u, d5 U% ]2 f" X- J: Y0 }  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
, r! a1 o( K; w# @$ ^. h
; v) N  {7 }' _<HTML>
3 g# ^# N7 y% h. q( @' H9 a<BODY>/ [/ E1 c6 _3 S. ]) l6 N9 z
<SCRIPT LANGUAGE="javascript">2 O) T1 B- V/ `* R" M
function Decode() {
$ |1 J# l3 P8 U3 F4 O. bd("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; G. F& K" x+ k</SCRIPT>8 s. S: V2 G0 f; t. `# L
<SCRIPT LANGUAGE="javascript">* t# U, o; }- Z- c9 Z4 G! ^
function d (enc) {document.write(codeIt(key,enc));}
% B- D* X- e: k- v& r6 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;}( ?3 m: z: N3 t6 c: D
</SCRIPT>2 s. f9 |1 s3 |4 x% l! V+ ~6 M
<SCRIPT LANGUAGE="javascript">
, H9 r8 E( d9 J( K$ U* D2 vDecode();7 Q) }7 m4 W3 c: c4 U: J1 W; z/ e! S
</SCRIPT>+ e+ N  K# M$ U4 ~7 e+ }
</BODY>
' @8 `4 m/ r( y; D</HTML>5 Z/ S( n+ H" Z, H0 X

7 j+ ~0 C! G) w4 ]4 {  a  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:& N) D8 ~8 ]9 S$ P4 I. v0 ?! L5 x

# \4 W( Y5 M) h$ o1 C<HTML>. a9 N' n2 [. i' x
<BODY>
8 N8 J; `$ y: ~- [<SCRIPT LANGUAGE="javascript">" u: z8 f& V; W* }# n. R6 I: }8 z
function Decode() {" d" V! |5 O. F6 d
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;}$ W+ W; w. W, v5 v
</SCRIPT>
7 Y+ W9 N3 W; y  L* }  p6 v. G<SCRIPT LANGUAGE="javascript">" P1 m. M8 ?6 c7 ^5 _) x
function d (enc) {alert(codeIt(key,enc));}# u2 j1 E  U% L  Q$ d/ l
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;}
& X  m" g; O6 r8 T% {</SCRIPT>
7 p* V* S) e3 N& I) E/ _<SCRIPT LANGUAGE="javascript">3 j5 ?+ l, I5 M3 r! u
Decode();
' \/ i( U  }9 R5 c8 ?/ P</SCRIPT>
7 \: C2 L5 U. T) `) [</BODY>
1 \* Y7 `& ]7 c$ x! p! K5 X</HTML>: A6 @; ~- R7 {0 t0 K* x% T
  Q( \) M) X! M1 E; E
  哈哈!!:=)是不是很精彩!!

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