Board logo

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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
+ u( c# p) w' W4 Y/ P0 L" w# A/ o* P
% O6 D- d. s5 j/ a% w1 y7 m; A/ Y9 L, S  w& C$ M5 T
方法一:
0 c+ q& M) _; @! G8 a: @/ v( {- @5 W$ n9 @, F7 f6 x) g

  N! t4 `, R5 ]; K9 u. w: N3 G  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:4 e7 M. p$ a- X

5 Z; i# k7 d2 ]" m( ]  F<HTML>
# T/ G8 d- k) b1 w; b<SCRIPT LANGUAGE="javascript">" i9 m: ^9 I) R- a
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"
/ ~9 C, K: ^8 H" X- Tvar NewWords;! U; c& m* Y1 c: @- s. J8 i
NewWords = unescape(Words);3 Z5 O  T9 o9 O5 b6 g: `! S) r" p
document.write(NewWords)6 {7 K$ ~6 s3 W5 D! ^4 I
</SCRIPT>
+ j6 }7 V0 A; j<BODY>) Q! V1 K. s. v
</BODY>
& G0 `1 [5 e) \& G. {( q</HTML>
2 \, K2 x, a, [3 J2 X3 [' H, y: s9 \, I, Y5 w" f1 d
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
: l8 I; M; O( \( B) W
- T- a4 q  \/ g& y$ j' n<HTML><SCRIPT LANGUAGE="javascript"># [4 @' Y( e0 c- G4 i, 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"
. ~  M% @- e+ D: ^  t; fvar NewWords;
2 M  E  V+ v5 J  KNewWords = unescape(Words);
. M7 L9 {0 M6 ?' N: r/ bNewWords=NewWords.toString();& F3 r$ Z& P% e
function password(){
! j! w( }3 t8 f9 p: u% ^# Ydocument.pw.txtpw.value=NewWords;
8 F" P# \% n+ s9 O, O% ?- |}
& F! l" s9 t! h8 K! {. m</SCRIPT>
, Q3 S$ D+ x6 F; q  Q<BODY>* x' `- A+ G/ H0 S
<form name=pw>3 ^- d) ~1 b; k2 L. ?& H
<input type=button onclick="password()" value="解密">
; j: r% I; p9 l6 q. k. [1 L/ C<br>
+ {. Z+ J  r+ S4 [- Q<textarea name="txtpw" cols="100" rows="100"></textarea>
5 d% u3 _5 W4 d* x6 C$ O( }9 e</form>0 r0 u; r% r0 D1 X: k2 v: c, p1 J
</BODY>0 Q% i$ F8 Q+ @4 {9 k' A
</HTML>
: T5 a- _, ?* S! |8 q
+ Q+ H3 `- _# x: z. s方法二:/ p9 }2 W+ Z; b$ W/ A- U! G

/ A. m: _( [6 J  Y" r  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:" }& ~5 z. J9 a8 I" T
5 h/ S; ^% x/ ?+ T, ~
<html><head><script>  T/ [& D+ Y+ \( x5 {; D
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 ); }
! I/ l$ Z( y5 X2 V4 b. ~var sJsCmds ="" +/ Q6 T$ R# \' B4 V7 u, a' s8 w
"?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" +
  e$ h3 P' J6 t: O"";* ?  h0 F- n7 f- `. _8 R- L
var s= Carbosoft( sJsCmds);
+ W) W/ b# w2 e7 W6 n8 Ddocument.write (s);3 |$ {; Z0 Z0 c/ I0 N! z* O
</script>" ~2 i. w" U+ Q; X( W% l& M5 G
</head><body></body></html>, b3 R8 H' t  M$ f# b
2 `# n5 v' o" R  X( T
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
6 L& x# p, P: R, n; @/ h, k9 J/ L: x; @0 |
<script>3 R/ g: O5 p7 f
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 ); }9 s2 @. |# |& i, x8 U% I
var sJsCmds ="" +
6 I1 Q0 I% Y$ C$ v) A. g) a"?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" +
/ L9 Z8 Y, r" R7 C5 Z, J4 x"";
; d$ y( M% a5 @5 g3 Y# Bvar s= Carbosoft( sJsCmds);
$ C) J2 l; Y: [. l</script>
9 @5 R! J5 {( d" }& }7 {<form name=qq>+ K) H1 w* X9 y
<textarea name=ww cols=100 rows=10></textarea>( ~2 ~* b3 c: j
<input onclick='ww.value=s' type=button value="解密">
6 w# A! Q' W' H% u- T+ A# {4 B5 l</form>/ z9 ^  h" M0 H0 B! X
' j: `3 B2 K$ Z; a6 J1 O

0 o! ^# m% @5 Q7 v* M! f方法三:
2 n6 V3 J4 ?& K4 D6 j3 Z
9 y. K+ ^0 I; o  ]* B  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:# _+ D6 M, C2 N! d2 R. g5 O
# R0 T4 A- i7 @7 B7 s' m7 J$ h' [
<HTML>3 U- C5 Y3 A3 k6 Y
<BODY>/ G& Z9 T+ O+ l0 m& W
<SCRIPT LANGUAGE="javascript">
" ~. f3 X3 h) }! q3 F' gfunction Decode() {
: R. F/ r* {0 l; zd("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;}
9 W5 z& {3 X- C8 j4 ^9 ?& x</SCRIPT>5 r) ], [. `( R- g
<SCRIPT LANGUAGE="javascript">
& z% R$ S7 a8 p# I! hfunction d (enc) {document.write(codeIt(key,enc));}
/ m5 E7 t2 J  S& t) {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 N6 j9 T: P: F: s) D
</SCRIPT>
7 F6 U3 A- Z5 R4 N" v<SCRIPT LANGUAGE="javascript">
* N, F8 @# t+ H% {. \* [9 fDecode();2 X( H4 Z* g. [4 r9 l0 d
</SCRIPT>
- e7 [! b  ]- O7 j( x* Q5 G</BODY>$ X% ^2 I$ b. h8 c0 x
</HTML>0 g/ k& }9 i: N1 R5 w& Y5 t3 _
; L5 B# k3 p% y: |1 i
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
2 u" b+ }! r9 `
/ ~* |5 o3 J* N8 y! J! l<HTML>
4 u" b  N& H% j4 q6 r( S4 T<BODY>& B  o& }5 d! Z. L+ x% J
<SCRIPT LANGUAGE="javascript">( u6 _' v. G$ Q- A' X
function Decode() {
) Y8 I  P+ r, W4 ?- v) s: Wd("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;}! B; B( {  V2 \: [4 ?! V, r
</SCRIPT>2 F' c8 D( |& ~8 D
<SCRIPT LANGUAGE="javascript">
0 F6 I! C) V+ x2 j& efunction d (enc) {alert(codeIt(key,enc));}
( Y2 X6 M$ E  Q( ?9 Gvar 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 N4 \3 o& Q" x% A
</SCRIPT>' I  E' ^9 D. [9 L2 o$ y' T
<SCRIPT LANGUAGE="javascript">' _6 a" y2 c5 s
Decode();
/ p7 w2 ~# e$ r1 z: w9 A+ r</SCRIPT>. k6 K* }: \) q' R$ }* f" d. {
</BODY>
7 J" ]* y. G/ M" x</HTML>4 T1 m8 T  Q4 t$ f
5 O! }; v& k# ~. n" e
  哈哈!!:=)是不是很精彩!!




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