Board logo

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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
' @7 X/ q3 J6 }/ {2 J* Z
% A0 D" {4 j/ K* e1 e0 `
; x1 t/ e7 N2 V& u1 n" a方法一:
$ B  M( H0 l' K  J- V
8 _, k5 V) h% H' d$ m$ `3 H' b2 k1 f2 S
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
) D7 m7 X6 o8 H! \: V% [- v  u. q# V" v1 [6 y* O6 O5 i
<HTML>3 W  S% ?6 }3 ]& y1 k1 H$ W2 S- F
<SCRIPT LANGUAGE="javascript">0 @) c% m1 }! ~4 X" ]
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"
( N7 B) ^7 h" r" \var NewWords;$ m% z* ]5 \# w4 i! g8 ~6 h3 T' S
NewWords = unescape(Words);3 p2 i( T2 S6 W$ h
document.write(NewWords)
4 i3 Y1 }: ~  o" `, @4 Z; S+ W</SCRIPT>
/ m7 I6 z8 J. P, {7 Q<BODY>
3 |# J* E* ~* u# {* J: r. J</BODY>+ {3 I7 y( `3 ~
</HTML>2 ]. @' y: X2 Q$ K6 M
5 y1 O, h( n" e8 f7 L( F
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
5 t2 T' \/ q# P* [
3 t, e3 l  e' v2 ^( f& ~, h7 O- h<HTML><SCRIPT LANGUAGE="javascript">
3 b7 P. x# ?+ ~& W) 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"4 X' s, I7 T. u) h. q5 K
var NewWords;
0 F6 `* P% V1 P" `0 ~- |NewWords = unescape(Words);& F) P9 v; V7 A9 f. n
NewWords=NewWords.toString();9 e; _& J) ]) {0 B& A& z
function password(){
9 t8 O) O5 L1 f/ G1 F/ d% n1 c7 Tdocument.pw.txtpw.value=NewWords;
9 S- u) z3 H9 G}) e& l- D7 H3 ?9 E8 e
</SCRIPT>
* L! Q8 _/ ^; [5 L0 {' [<BODY>  g2 b- g4 B4 V1 ~! I, _# V
<form name=pw>
- l& t0 M9 z" a$ P8 S  b<input type=button onclick="password()" value="解密">
( z( Q6 Z# w" j' }) V+ M; a  ~" E+ X; m<br>+ B( `# ~, ^" Z( l. a
<textarea name="txtpw" cols="100" rows="100"></textarea>6 f: N0 _1 x- [' x6 J: z/ X8 @
</form>
; o: s3 s) @8 I! [, X1 Q</BODY>
& b1 `. s& ?" V, P# u' y! o% d6 B4 G</HTML>
! [" s* G3 S/ L8 M# l) z* L
5 ^2 U1 V! K0 `+ i) @5 A) u( a方法二:# b  B( N5 M+ m/ e
, Z" l) i, H0 o0 D% U% W- Z1 K2 W# L
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:6 P& L& C# O' Q  g7 Q$ z9 J. R

& t, C; G& {+ a! F8 u<html><head><script># T0 c$ H0 @) O) p  y4 v/ Q/ e) 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 ); }
0 |% A0 N9 e" svar sJsCmds ="" +
9 q6 g- e9 l4 `* \7 ^9 H. ^"?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" +$ O* @( |- j; L' L; |) \
"";
' [- b! Y( }- V9 Z' i- Yvar s= Carbosoft( sJsCmds);
7 U/ C$ w* n2 N- Gdocument.write (s);/ m; o3 W; u& L; v
</script>
) {: b( \/ P) r* k5 ^' a, u+ ]7 H</head><body></body></html>+ |; j  w4 p6 E0 n' l

4 N. y( u0 O' x3 F0 G1 p5 ]* L  K: i  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
/ @' z$ _) }+ z- h$ d* ?
1 f  l, D( D* }4 O8 d6 w<script>
8 i* a  n/ [8 Zfunction 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 ]! {+ q" M2 F* ^$ lvar sJsCmds ="" +% ?' A. f! n( }3 ]5 {4 Y, M  H) H
"?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" +, a: }, z% X0 f& @- a4 `
"";
. p1 B8 r, U# {; N) jvar s= Carbosoft( sJsCmds);
0 p8 P6 h: O- b" y</script>! ]1 W8 @8 Y0 V
<form name=qq>
/ a+ b, Q' X+ G4 r% b' o; i9 U<textarea name=ww cols=100 rows=10></textarea>6 b4 p1 V/ O- S7 o$ j
<input onclick='ww.value=s' type=button value="解密">. n- o* Z1 U% ]& A8 x3 e% i
</form>3 S' Z9 ~+ A+ q1 d5 J5 v
- ^$ |7 p# H& v' z. X

0 V0 B, u: n. j& ^* y方法三:
( l4 j! u, J5 R( q& O& S  \; j8 z% k# e( j+ a( e, o" k0 `
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:$ n8 |  P. i" @9 r3 Q( P  t

6 q% w3 U0 L- C2 K3 B8 B5 d<HTML>; F" K& ^% Q! n: X" `- v$ S
<BODY>
' [# ?7 `, y! l: N/ I5 c6 y<SCRIPT LANGUAGE="javascript">
' M  S" p+ u4 v, ufunction Decode() {9 U: r; w- n% t* K6 i  `
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;}
" _& U: `% l' A  r& W</SCRIPT>  D9 W( b3 H3 z
<SCRIPT LANGUAGE="javascript">
4 q  i# `0 R9 s9 afunction d (enc) {document.write(codeIt(key,enc));}4 C9 V" a3 Z2 }( J0 |
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;}5 N* a  A& k; m( _. ?
</SCRIPT>
* I+ W# L( L8 m/ I& \<SCRIPT LANGUAGE="javascript">
! A4 o; {/ L# H" f. R7 dDecode();( a, _; ?  G1 k" }6 A6 @: N+ F
</SCRIPT>3 Q. W9 s6 x& i9 ]  g
</BODY>) X4 s2 k1 N% W' X0 _, E1 D5 i4 A
</HTML>
! w/ ^1 K+ a- ]" \/ B: Q) T5 C; B+ q: D& Y
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:% \' @6 `, n. e+ J3 ?  r, d# l8 W

2 V( J; f* m. W& x3 D( y<HTML>
7 i9 }- _. s6 P5 {8 L+ O' o9 o<BODY>
' {, Y7 x, u2 Y2 x2 H<SCRIPT LANGUAGE="javascript">
7 X  U0 |+ w, ]/ u% m! nfunction Decode() {; X: S$ m0 G8 i$ K& H
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;}  l& Z/ o! J0 B) V9 u2 H' n  w
</SCRIPT>) Q0 q  R* h: O4 ]9 f: @/ V* k
<SCRIPT LANGUAGE="javascript">
9 j" n, ]$ _0 y! i. Gfunction d (enc) {alert(codeIt(key,enc));}! T: I# F. [- y7 A9 g. R
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;}
: [  `7 v& O7 p  H% _7 ~</SCRIPT>) o% g; I+ x; D3 N+ x; [% f1 K9 L' |
<SCRIPT LANGUAGE="javascript">
* o' f; @$ l# |6 A+ ODecode();5 [3 U7 U6 v9 u; R: I- O
</SCRIPT>* R2 f% ^) [9 i) V1 C" O3 i
</BODY>. W, Y( y1 z0 z$ j( g) m2 i
</HTML>1 R! R9 R& `: F  G6 h

# @0 ]* d2 [0 ~7 N& _  哈哈!!:=)是不是很精彩!!




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