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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
8 W9 E& G, \! v- u8 C7 o2 {4 F# a  {& Z, e& ?. Q! x8 b

. e( K  |$ N9 s& y方法一:7 }7 t- r; I" r
+ }! c0 e6 k9 D) H0 W
4 W& T: d4 L. I9 f6 V' G
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
  h9 t5 R. S9 |- B8 [1 q- L; R$ |% h) s
<HTML>
5 H1 o# p+ C5 a+ ?/ ]: t% s<SCRIPT LANGUAGE="javascript">, M2 `( D7 T: a6 `
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"- J5 W7 a" V5 b4 R
var NewWords;& @( z2 U: U/ V! Y" o) l# f, q
NewWords = unescape(Words);$ D/ f5 A$ ^, w4 @7 U
document.write(NewWords)- K7 _, K. |* B
</SCRIPT>. m4 w7 R+ s% `% \" c" h
<BODY>
3 G. v% r- o! U. u) e</BODY>7 ~8 S) L) k- u3 a! p6 y" s( [
</HTML>( {$ Q0 ^- M% H( p5 |

1 J! D3 \3 O/ V. a  p6 T  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
7 A0 s! |  Z' z) }/ ~
3 {; T5 D2 x# h. F& P<HTML><SCRIPT LANGUAGE="javascript">: i& s& s: O# ?9 @+ 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"7 [# p( a+ r' y6 ?, o9 }
var NewWords;1 t  e) n# k# y1 a/ x0 W9 c
NewWords = unescape(Words);
' D& u& w" O' C* dNewWords=NewWords.toString();
' a+ B+ f  D' x, y- z8 Vfunction password(){& {, K0 C! E) O8 m" [6 \" a& t
document.pw.txtpw.value=NewWords;
; G& y: }. Z! {# g}
) V0 a) y1 ~8 m3 q</SCRIPT>8 a; q! W- y2 y
<BODY>
, G7 O1 Q4 k, e6 T$ M/ n<form name=pw>& O$ p" w" I3 ^0 b5 V
<input type=button onclick="password()" value="解密">& F! l9 G0 q1 u
<br>3 i( a0 C& _# B
<textarea name="txtpw" cols="100" rows="100"></textarea>
) d; E+ q& m' B8 \- Y7 E3 Q</form>3 D- r8 A  B+ m, Q9 A) M- a/ U
</BODY># |+ j- I7 M) f! G5 h5 m
</HTML>5 H. [$ E4 d1 m5 @6 p

2 h$ p& K1 L# `9 L+ [/ k+ T, ?方法二:
8 ~9 n; _0 _# k0 }/ N0 b  I4 y# t+ X' K! S
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
7 ^$ G+ K1 A% ?) V/ K
/ a3 `2 D7 r+ G<html><head><script>  \. N) X  a$ u: Q9 p  k! D( 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 ); }
4 r' g: H2 E+ n% E! ^var sJsCmds ="" +
! J* G, o+ g+ H, u* 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" +$ W9 U' m0 `- X+ E0 X3 }
"";
' \2 L* t" R) T/ `8 l0 ?0 t" Bvar s= Carbosoft( sJsCmds);% z9 t0 U. \. G& K$ [" t, D, n( o
document.write (s);5 R$ j7 l: }* s' k/ u* @3 l+ e
</script>
" g  v  d* ?/ n2 U& R</head><body></body></html>
% k1 f) l- p: ~" ?* s9 X1 L4 x' S) f) ~
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
  h$ G9 @+ l) `2 E& v& \
* J( h/ R- G; l. ^3 O  ]# Y9 l- z1 j<script>' M  \. }4 Y8 B8 u3 J0 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 ); }* \& S% d, [. o" W1 ^# ^
var sJsCmds ="" +
& ?; B; T0 `1 t5 @9 ~7 l7 |1 c"?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" +; F5 d! l) }, f5 \- _
"";- _, ?* h3 F' W/ l8 l6 A
var s= Carbosoft( sJsCmds);( I' N! f4 h+ X" Z
</script>: Q# j0 E: Y0 p3 P7 G) l
<form name=qq>
6 \& l  K! j% y3 ?9 I; ]) \- v: r<textarea name=ww cols=100 rows=10></textarea>% X9 |: e# `( p( ~
<input onclick='ww.value=s' type=button value="解密">
6 ^5 G# o6 l* |, ^: G& m</form>
4 ~# w. ~5 y, F6 z, [5 e7 `
2 T; V% M4 }2 z( r" d( |' O
4 \& V: u3 U+ X1 ]7 o5 B' N方法三:7 Z! a0 v; J/ m" J  a) v% m

1 y7 W4 h( k/ d  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:6 A* Z" q+ M0 Y4 s

* q+ \# H( g" |5 W/ @) U5 h<HTML>
+ Z/ c  ]1 ]2 H9 L2 X5 p. c<BODY>
2 ?# z, X7 }7 Y! p$ ^9 p5 f: @<SCRIPT LANGUAGE="javascript">" D7 I' I# m/ |5 s* j
function Decode() {
6 s" Z! M8 R8 E( T' z5 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;}2 p. Y; T; ]- F' ?. d
</SCRIPT>3 S! p; W5 M  T0 H5 [$ h
<SCRIPT LANGUAGE="javascript">1 \2 M! P  u. J. W* r
function d (enc) {document.write(codeIt(key,enc));}$ Z1 |+ {$ J) |
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;}
( r0 R( y; u+ m, Y</SCRIPT>
1 |* ?& I' A; r1 T! A- O  r<SCRIPT LANGUAGE="javascript">
; C. o; g, i" nDecode();6 w5 Y* t9 z4 Y
</SCRIPT>
' S1 P- F- G; l# L</BODY>2 Y1 a) `& N/ {1 l
</HTML>% s( {4 i5 S5 @2 o/ l" p6 Y1 _, x. V, A
) G$ ?1 h1 i7 Q) ]' ~; {
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
6 o( ], M; H% ?( i1 B/ N; S% x, V# o0 x) m; U9 u2 W" a* v
<HTML>. Y2 ^9 o, B5 Z1 d& X: O3 d
<BODY>8 I0 I% F: M: A3 W
<SCRIPT LANGUAGE="javascript">
4 d( N4 o" O7 ?) d; W, l$ Ofunction Decode() {
9 k" H, \8 Y$ c; K$ 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;}, T) T# ]2 z: I/ k% M* }
</SCRIPT>
- s' E4 h% I" f" C' q  d9 f<SCRIPT LANGUAGE="javascript">
# f2 g2 k2 A) U( n1 s% \6 W) [0 lfunction d (enc) {alert(codeIt(key,enc));}
, |+ Z7 X; q( nvar 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;}" Y2 P) q6 _) s$ i" r; e
</SCRIPT>$ `+ b+ }$ A6 C1 D, n
<SCRIPT LANGUAGE="javascript">8 b$ f: ?% m8 d1 r1 }+ H5 F
Decode();$ k$ ]  N% B. \# k
</SCRIPT>: L# f' Y! a0 C1 V
</BODY>
' O7 v9 M) T: w8 s& `0 [</HTML>
$ W: @  h( x, X' B1 B9 S  ?% n  f! \- H" I6 |. z4 P
  哈哈!!:=)是不是很精彩!!

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