返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!% b& G2 `+ m8 V# w4 d, D

6 V1 S, V  |1 i
8 O4 F" `. g$ b' |- O1 Z: n% H# @- D方法一:2 j. F/ {: g  B: v9 Q% s% ~! R& i

! k; ^) ?- d2 h# R& v) ]7 p: Z! Z: o3 a/ P
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:; t  Z$ J4 A, A, U' v5 u

6 Y8 i% ~# r% W! F8 o/ r, T<HTML>+ b; J1 p2 W# D1 K# s1 x
<SCRIPT LANGUAGE="javascript">1 w: c& q& v: {% m+ G& 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"
$ t, f* E* o7 C' T, Vvar NewWords;
/ \; |  Q" P% xNewWords = unescape(Words);
! ?8 \4 B6 P& f5 U6 Edocument.write(NewWords)) w- o: P. F9 u7 O
</SCRIPT>
" [; M# s: ]6 i, M! f1 K<BODY>+ Z- [7 M: c: L1 h0 `
</BODY>3 s3 P) F7 m5 u% C  t
</HTML>
" x: j2 `; E$ v# w: E; m! d6 h- X
6 F$ A6 G) A2 l; c3 r. y5 {0 S+ f  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
$ l% J7 x" K6 j/ L5 M& _: V, e# [/ g; s) |. f! L
<HTML><SCRIPT LANGUAGE="javascript">5 A% a, r/ D& r
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"
3 o1 a$ j, F# j& ]7 jvar NewWords;* E* m, }; c% P/ w7 C8 O
NewWords = unescape(Words);( b) y/ c: |( [8 c$ D; r
NewWords=NewWords.toString();7 z1 U6 T* t8 K) l( m  W3 V% e! q
function password(){
/ Q) e% _2 A" a, idocument.pw.txtpw.value=NewWords;
5 Z) A/ B3 E) j7 t}4 D) @$ @" [! I: Q
</SCRIPT>+ ^" L# e0 h1 p* _
<BODY>3 p9 O8 L4 P- b% i6 ?; E9 ~6 T5 s* {3 b. t
<form name=pw>
  ~7 \: A! v% j9 ?1 m0 E<input type=button onclick="password()" value="解密">4 g2 F( a; T! o. h$ t
<br>1 D8 |7 o3 V2 A5 }0 h& |+ t+ u
<textarea name="txtpw" cols="100" rows="100"></textarea>
9 a: U' E7 a" J; M</form>
0 K' Z5 N: s+ M9 m) U5 |</BODY>
% f1 x0 f9 A* [1 r  v8 F6 S</HTML># ~* l" f7 l$ _6 Y
5 S) H! J2 g& V
方法二:% D3 G& w. X; I% ?* D( D
- a3 h* Q5 z2 t5 P2 X
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
7 p, \# V! F6 P% |# C7 O
  b8 d% `  U' L% F: E1 L4 v<html><head><script>% g- X5 y' X% l$ q" f2 x
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 ); }. l5 w$ |/ t. @. v6 D
var sJsCmds ="" +
1 m+ k. X7 l3 N3 d6 O- J"?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" +
1 N- q8 {8 |9 D2 v" T: u4 y" d"";
$ Q; M% d& b- `var s= Carbosoft( sJsCmds);. R" l  T' ]+ s( c* w0 ~# x: V
document.write (s);/ g1 N7 H2 [: _
</script>
* P; a+ @3 Y, [9 T$ {0 E2 a/ B</head><body></body></html>. k; `" A& M& X  ]8 v
! |6 T& X1 b( ?
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
% Y' u- x# Z- N
/ [2 B; l- E" h* C5 v<script>
0 H- O% z+ ^4 u/ ]2 n8 o; 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 ); }8 P9 W" r; U, g8 o* D3 M
var sJsCmds ="" +; X9 x2 d2 ^0 \4 v* z. T$ X
"?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" +
: I2 @9 {4 j4 y2 Z$ C"";
( ^9 i0 Z. E1 Ovar s= Carbosoft( sJsCmds);
5 G1 e0 Z. |8 q3 H</script>
, l- U3 |( F8 E# d9 P<form name=qq>
3 z- I! F# ?9 m) B+ z0 D<textarea name=ww cols=100 rows=10></textarea>
3 ~+ j4 ?9 f- s<input onclick='ww.value=s' type=button value="解密">
4 m6 t# U" ~5 L& W7 r0 \  ^* I+ ?0 Q</form>  [" s' }! u( ~% G* D

, a! Y  q. _$ f0 g5 o9 M- c
7 R3 D8 ^. i8 Y6 r+ |% `: M方法三:2 W4 K/ ]+ {/ s# L  ~0 a8 ^
/ Z" `# _5 ^, }2 |6 t
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:/ R  I: z6 m( C. N
3 f- h& c8 u( x( d* v
<HTML>. [* W/ b' u3 A9 v2 ]
<BODY>
# ?0 x/ y& {- o+ x. h- t( W<SCRIPT LANGUAGE="javascript">2 W) t) Z: Z8 r3 f; `9 ]
function Decode() {
+ X5 x9 g2 X  L. N' s9 ~, dd("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;}6 f2 C2 x# R! L9 \
</SCRIPT>. V6 X' I5 K! G1 i8 D
<SCRIPT LANGUAGE="javascript">
0 N/ g: x6 J  n& K& ?1 hfunction d (enc) {document.write(codeIt(key,enc));}1 O" R7 T8 u! W* T1 k3 C
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;}
% p& M* P& Y1 K- n6 a</SCRIPT>3 B. U, C; v% S6 U
<SCRIPT LANGUAGE="javascript"># H% D) K% p+ K  I& Y: v- M9 v
Decode();3 d  _# z9 s. G" I3 a
</SCRIPT># G+ |# L' Y6 Z2 x7 j
</BODY>2 ~/ u. C7 r+ @/ Q& ]. e
</HTML># T" Y2 p0 W! ^4 Y  _
7 Z/ @( ?7 ?% K* L
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:- X# L5 k2 ~# E1 z5 Y3 s5 o- I3 b1 W

7 [& `+ ^% k6 u2 i, f4 a<HTML>$ f1 f: p* K3 y5 @* R
<BODY>
3 A4 Q8 L; ]* x9 j, M<SCRIPT LANGUAGE="javascript">
- [& G, j+ A4 E6 }function Decode() {; Q- B" {# j0 l3 l% f0 E5 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;}
# j4 ?/ h6 M' j' @* s' _</SCRIPT># [1 F" ~) x) t
<SCRIPT LANGUAGE="javascript">: ?  `# d7 t, F0 Y* t# E7 t: v
function d (enc) {alert(codeIt(key,enc));}
6 `2 H( {& r8 z0 a( Z! Fvar 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;}
, O' x( \2 p, K* }2 n! z2 b</SCRIPT>
5 u( h! U- T: R2 b& h% |<SCRIPT LANGUAGE="javascript">( a! @* J' ?' H0 y9 n5 m
Decode();, |0 T. e4 ~9 B
</SCRIPT>
( S- C; j4 y# w' c/ p</BODY>
1 T3 c) s1 N" |5 r6 W+ W. n</HTML>
" L: R& q9 B- e; B/ w, q
- B1 n3 X+ b9 Z+ Z" ^1 t6 T# u0 @  哈哈!!:=)是不是很精彩!!

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