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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
" A8 i% M8 ?0 n5 i0 [% k6 l( R" M, @' a

: k) ?: A- B9 G方法一:: W; ^9 v) j* E& b* u8 w

. E" U8 d. X3 G, a9 O5 a. a* m& d1 O; _( b: P4 ]
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:5 G* S, k) |) p  H. }8 G' B8 ?

4 a+ C/ C& R5 V9 b<HTML>  q. v% [$ i- w0 e+ F- B
<SCRIPT LANGUAGE="javascript">
4 O3 F: q% ?7 T8 y/ {! Dvar 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"
0 y1 C! |, ?$ p+ G% p. @& Jvar NewWords;" V4 q, }7 U( ]8 l& u% w
NewWords = unescape(Words);
4 ?9 g( N) }/ L8 E) ^% P: K) Rdocument.write(NewWords)
0 @, i1 {# y* e</SCRIPT>: ~& A8 H) N; k" l# i0 O
<BODY>: T/ _' b4 {, h9 r0 M, P# x
</BODY>
( y# R1 F, ~$ _2 w/ S8 u6 q2 h! w</HTML>( V0 m( t5 T/ ~

9 I; f5 n+ M2 g: c  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:$ p  k8 h. E! O
8 Q8 v+ j; I  Y. q7 W7 V
<HTML><SCRIPT LANGUAGE="javascript">4 o% Z) o% |2 s" p5 P% o6 n
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 l$ i: x, Q+ `5 bvar NewWords;
' n' K- h' T& t9 p  R% zNewWords = unescape(Words);. H7 l3 B" {2 e2 ]+ u, c/ L% S
NewWords=NewWords.toString();: V- ~" M- A2 J. i) V" q
function password(){
9 w8 B. [/ q; _+ jdocument.pw.txtpw.value=NewWords;
' J5 O' i$ M1 M4 B+ }+ t# S) O% ?}0 `( m3 ?6 l4 ]. u2 R
</SCRIPT>
& E6 Y/ {( k1 m5 u0 r<BODY>) I* x: Q/ N" C+ A
<form name=pw>
5 M7 W, {# _- X# T% x- H<input type=button onclick="password()" value="解密">
# o: s  b3 J% a( L8 L<br>, T9 {. I  Z8 o0 p
<textarea name="txtpw" cols="100" rows="100"></textarea>
1 k) @) R7 L0 M; T! v</form>8 @7 K  w, M# V; g
</BODY>+ v' I8 n$ s% e2 b/ |+ G
</HTML>7 g% x0 U- ~0 w* k: P
+ H8 O3 F( R5 `5 j6 Z
方法二:
6 A7 O; ]& x; s# b$ Z- o3 q+ b" f6 X. U; Y
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:+ W$ w2 W& x% ~* [" m( a
, T3 F) f4 H/ j8 A; m  O4 w5 {
<html><head><script>
, G3 u' Y" K8 A* 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 ); }
+ Z+ x( I& \+ ^9 q4 Q+ N$ f, qvar sJsCmds ="" +
5 ?- o/ ^0 J) A7 g"?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" +2 Y; q6 v+ j: m
"";
' |+ m) p  ^* d) Zvar s= Carbosoft( sJsCmds);
! p  |$ k( L+ `3 n( ldocument.write (s);5 H6 L3 {3 G( [: r
</script>6 ~3 ?+ f3 u7 C, c: D+ T0 H
</head><body></body></html>  _2 t  G! O- Q2 m
* P6 x+ `4 W- }
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
1 ]! ?$ {% o$ a9 X: z2 ]6 t- P7 ^' O0 I7 a  N2 l2 }+ N
<script>
0 X/ r+ P/ B: U% Y: G# R/ Ofunction 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 u" W7 v) H3 {+ @6 Rvar sJsCmds ="" +3 o: q( t: e7 Y$ _( I
"?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" +
# R  k( J0 S6 U) Z/ a"";
) ~/ B, O6 J3 ^+ [7 Qvar s= Carbosoft( sJsCmds);; C& X+ g, e$ `% _  C' X8 ]$ C
</script>; \& T- a; R+ [; j1 c  _# n$ s5 b
<form name=qq>
  O) S, X8 V' ~$ e' X8 A2 c<textarea name=ww cols=100 rows=10></textarea>9 A; b# f; z+ X, N7 x
<input onclick='ww.value=s' type=button value="解密">5 R4 D8 x% V( D: a/ M2 \' H
</form>9 b. s! B* a; [7 o) M" E
- k/ i; n: V( G/ z+ j" y! R

8 V& O( ]0 U0 N) B方法三:
( ?4 h% k0 v/ |% {5 ^
5 j$ S; I$ C! \$ @1 s; F/ g; w  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:; }' t1 X! M. V- i) |
& k, B" c! ], {" C2 m
<HTML>$ ~& K0 s; ^# r
<BODY>; V# B5 A# b" X
<SCRIPT LANGUAGE="javascript">
$ ?1 Y4 u% S4 M- g1 }2 e  Y2 Qfunction Decode() {" X. d* @- l& @% p' m
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;}9 ?+ h& n% ]2 P6 c# ~7 [
</SCRIPT>
& k  Q% D$ L# \' }<SCRIPT LANGUAGE="javascript">
8 l1 V7 E& \5 H/ zfunction d (enc) {document.write(codeIt(key,enc));}
# Q. y/ ?' w  }6 Z% h, jvar 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;}
( a- @* l8 X. ?, ?$ f! x2 P</SCRIPT>7 t- V$ p- A& F8 O
<SCRIPT LANGUAGE="javascript">
! K; x9 w' W& g+ gDecode();- U; p. x  q' C! H
</SCRIPT>0 ^- {' N4 k0 {( R0 j; L
</BODY>
4 v8 J% W' U; e; z" T/ v' P- |</HTML>
5 _8 i( {( D( [- n; {. {/ B5 X* ^3 f( E- ]/ H2 p$ H  L
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:1 h, T8 a* C, x. t4 H5 A
& D/ a) I7 V( W! s9 D
<HTML>
0 c& k- a$ J2 Y; s& ~3 i8 Q, e# X# x<BODY>
/ v6 j& }6 Q5 }6 J2 ^9 S<SCRIPT LANGUAGE="javascript">
3 C: r4 U. k5 M. Dfunction Decode() {8 E$ B3 |+ H5 \2 P0 \
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;}
. \5 P7 Y8 E( f( ^! k- ^1 a1 m</SCRIPT>
& H$ x5 D' V' }; C& s# W1 u0 E2 m<SCRIPT LANGUAGE="javascript">+ p  W1 w8 p. m) G# e; M
function d (enc) {alert(codeIt(key,enc));}
0 M6 K0 u7 k# W( h! @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;}
, v9 ?1 X% y. y. ]</SCRIPT>
! H3 B* Q5 O) \7 X  P5 f<SCRIPT LANGUAGE="javascript">, R5 c0 ?+ H$ k3 k3 Q
Decode();# P7 b$ `$ z7 N% r& @2 U& A4 a
</SCRIPT>% v2 T! x" S4 e5 ^6 ]% ]2 d6 y
</BODY>
( g9 j1 X6 u( L8 S+ E* J" B</HTML>* r- x- ?) v7 f3 x. Q

% N% O. ~# U! J% o( j6 y  哈哈!!:=)是不是很精彩!!

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