返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!  r8 ^& c. |$ E4 C, z8 i

5 B2 q8 |) ]6 H( c5 L
/ _3 v* `  S( ?% S, j2 S方法一:! q  z- o) y1 M; `% B

- s0 R& j$ \) N. V' T3 }; T+ K% m+ b& L8 ^8 E# c. I
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
1 g/ ~1 M/ u+ m% T1 b, C! g& E  G' A5 b$ \# c
<HTML>1 M9 l$ I' d9 k) \
<SCRIPT LANGUAGE="javascript">" F" S9 q% f& H. s5 p4 O
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") n' y$ D1 I0 h9 z) ^- m9 V
var NewWords;
6 I0 j$ p+ Y" z9 PNewWords = unescape(Words);
: J8 Q( s7 x. |( p8 Z5 N$ R- |7 I9 [, fdocument.write(NewWords): z; i' L# `- g, d" E% M
</SCRIPT>
# |' k& Q' a9 X<BODY>; s2 K5 M0 W$ z; y4 y" H
</BODY>
8 B1 c0 e  {: R. i) P* `( a; K6 n+ h</HTML>0 y' O& }0 S4 N- W: N1 f

, Y7 w3 k# U6 {9 P, ^0 U% L  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:) k8 o0 U7 ]/ ]! H; i
$ ]% I5 l$ S: C/ F( H* C' Z) |
<HTML><SCRIPT LANGUAGE="javascript">+ B0 R! Z, g. I3 w, m
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"
# [! d$ c/ F: _4 B! @0 dvar NewWords;
  q& [9 O5 H2 @( C/ @# t2 cNewWords = unescape(Words);
+ N6 Q+ }6 D6 }/ DNewWords=NewWords.toString();5 a* J2 G# H9 b4 g! n
function password(){: j" m+ j/ c- F3 d
document.pw.txtpw.value=NewWords;
) ~) L! V5 ~4 }4 ^3 r  X}6 L! Y7 b4 g9 p4 y: @$ e1 ?) x/ e
</SCRIPT>$ ~$ B. k8 B( F  [6 h. p
<BODY>8 }: X/ k3 G' V: ?* d$ b
<form name=pw>/ M  k0 v# @! \, u
<input type=button onclick="password()" value="解密">
! J! [6 n0 k9 \$ e* v8 n! T+ x9 N<br>: ?4 Y) b2 C8 w5 F, R
<textarea name="txtpw" cols="100" rows="100"></textarea>& y; w* r+ f, h3 k8 q
</form>2 Z: I, g5 a* E1 H9 r! ]
</BODY>* U+ \( b6 Q8 g
</HTML>$ k( d0 J, A- i: f4 ]: [& L: K

5 z* @. O5 J( b8 |方法二:. |( D9 o) Q; X* v# z7 G

' q4 L) R1 J/ f- \9 [# B  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:' w5 f# b% {2 R0 ]0 n
& g; I( j, z4 {7 ?2 m1 F" ?
<html><head><script>$ A/ }0 h$ @; T" v' m
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 ); }
5 Y" J8 D$ }8 J- U  [5 Fvar sJsCmds ="" +% N. G- I4 C% M" q' r
"?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  ^8 p5 t& M) B
"";
8 M! K0 y, ^$ j* W! Rvar s= Carbosoft( sJsCmds);
) H$ O( M. ~1 a; h9 P: E. cdocument.write (s);
, M" b. l  h0 j- k: L</script>
5 Z# `+ s$ E' g</head><body></body></html>
" s- P! \5 p: y( n  M- E4 j% f4 ~; g* |6 `1 k: m, ]+ i% A* b6 W! A( D' l
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:/ M, O8 z6 H2 n& m" M4 P: Q  o9 ]
, y* v/ |" @) L2 b6 N) i
<script>
5 W; e) U6 K; x; w% Q4 h' y$ Cfunction 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 ); }- @" C+ |1 m% \' a4 r
var sJsCmds ="" +9 {' K( _0 j2 V3 l8 Q9 m1 T
"?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" +
# h2 M- ^2 H1 k$ l1 \' b"";
- W# \6 d4 G2 ~var s= Carbosoft( sJsCmds);
, l# G& d6 f5 A) s- D</script>
! b. k! x  @; O9 H<form name=qq>( X( n5 e2 w" O1 E3 `! D% x; M
<textarea name=ww cols=100 rows=10></textarea>+ O; p# n8 ]6 V0 _
<input onclick='ww.value=s' type=button value="解密">
8 V9 Q  j; R! e6 ~" H</form>
! h# m9 A& D4 O) c2 Z1 x( Z8 D- u) r7 d$ A1 s2 J) U" u

' M& b# [2 B$ Z方法三:" n, A9 H6 n' e6 J, m9 s
" y& t! r6 N' ]7 q
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:$ s2 P" \( Q$ N! ^8 }, P

; D1 M; p7 ~9 a+ k# o) K<HTML>3 I3 ?4 b$ ~* ]. e, P  d8 L
<BODY>
. O  Y- k9 b( K: z<SCRIPT LANGUAGE="javascript">1 V4 \) C( G! W* U5 ^. x5 F6 [2 g
function Decode() {
3 c9 x5 r; [$ |, D- {8 fd("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 B) i& Q: ]& D- S
</SCRIPT>0 a8 O# m: d; f
<SCRIPT LANGUAGE="javascript">5 |9 i. b" o* o$ }5 s
function d (enc) {document.write(codeIt(key,enc));}
6 e2 R$ D* J$ m: r6 L* V) i2 `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;}! h1 J' m+ h; u* }
</SCRIPT>
' r1 ?7 R5 ^! ]4 Z  j+ h" J; u) Y+ u<SCRIPT LANGUAGE="javascript"># k( o7 ]0 V! u* H: a4 C
Decode();% U' R9 n2 a& ]% o
</SCRIPT>% C) l6 e$ L6 _- J  I2 ^
</BODY>
7 {/ x- K, j0 T3 [</HTML>2 Z* O8 S$ k* i, G6 ?
6 Q: L/ D5 D8 T7 t4 q* y& p8 n
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
: L4 E1 b) q8 j2 a8 Z: Q' }" ~) E2 [+ m/ O" e% U5 X2 `% `
<HTML>/ i& H. V2 f6 m5 e0 f$ |
<BODY>
9 ?7 n/ Y! m4 B8 q: b5 @; s<SCRIPT LANGUAGE="javascript">
) R5 @, l# [8 tfunction Decode() {
1 k5 e- v+ K* I2 a5 E; Od("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;}; o: {7 O4 J) s, q# {4 a$ F
</SCRIPT>" e5 g, I9 L6 n) A
<SCRIPT LANGUAGE="javascript">. Y. l" f) N' h* h8 n
function d (enc) {alert(codeIt(key,enc));}2 J/ B) |% X+ y5 ?
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;}
: f9 i3 O0 n6 E6 `! u</SCRIPT>
0 G6 |/ y- C- r# z! C1 I* N6 M6 T<SCRIPT LANGUAGE="javascript">' y  k$ {7 V" F/ L' O2 g
Decode();( i! o  J4 u# O
</SCRIPT>0 p( p. B& _2 q$ U
</BODY>
* Y9 r! y% g9 W</HTML>& C7 Y3 s, j1 j1 ^8 J' v

/ s2 A$ N* m. z) P% X( A  哈哈!!:=)是不是很精彩!!

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