返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!) r. s1 P2 m+ Y. N$ r0 \- W9 u6 y6 b

+ E5 k. B' @2 [' h3 y+ Y
' K1 p+ v& U. s- v3 O* K方法一:
6 M0 W. p& T7 F* {& R
) l8 T! c- }$ y( t& {  u# Y* i
* x8 D% \" D5 K  h8 E9 H1 V$ @" j  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
1 O" o" \* B; f' K1 Y) k2 d: a2 F' ^3 B8 N+ K+ z0 s0 ~
<HTML>" X' C4 ]' P. X' i, |. T
<SCRIPT LANGUAGE="javascript">) m+ c; t& H9 N% ?5 G5 b2 y
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"
" _8 n  G4 b  o/ b% Qvar NewWords;
, Q! I: `- p" h. G+ c5 dNewWords = unescape(Words);
$ p6 f/ g# j" {* p5 D0 L" Sdocument.write(NewWords)0 G4 L5 A4 ~7 Y+ e& x/ i" Y
</SCRIPT>1 w7 h" W' i/ ?: O
<BODY>4 w6 O' W9 i* w5 C0 k# d) ^+ J
</BODY>
9 a, A1 a* J; P2 o% [4 K</HTML>' K$ {$ h  P& O

' p7 ~/ E% \* Z5 B+ Q1 r  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
  ^" |! A4 G0 z0 L  v4 E8 F9 s6 ~! |6 c: l
<HTML><SCRIPT LANGUAGE="javascript">
7 v" `$ H. B1 G2 Rvar 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"% |* ^% N) L& v, U. [) M) I
var NewWords;1 A+ M5 D' P$ r& H
NewWords = unescape(Words);. B6 X' M7 Q+ y2 N  a
NewWords=NewWords.toString();- R: b3 c0 [4 ]0 ?$ [9 q5 v
function password(){
' ]: `. X& X( L/ ^9 |. i3 Ldocument.pw.txtpw.value=NewWords;
) ?, R& g* |* p8 I}
5 i" r4 T! `4 ^1 z) `2 ~1 j</SCRIPT>8 h4 \% B. Q% a% X" P
<BODY>
" I9 `' I8 i* W- ]& h<form name=pw>
& r" J7 r5 e  s( u5 b6 c<input type=button onclick="password()" value="解密">) T2 I0 C; P7 S& I. a  Q% F( G
<br>) Z9 O" b3 x8 D7 i' N# r. p( y/ W
<textarea name="txtpw" cols="100" rows="100"></textarea>
* j6 X& f3 v: U, p8 R2 c</form>
  I4 L3 A6 S: e</BODY>
* Q. x1 |  a( x2 O) C7 a* y</HTML>
# D) |7 j/ j7 d$ Q  V! n; L
4 N# U+ T  L- ?: W1 {, o8 ?4 e/ K方法二:
) q* y" W) C) T  B4 P8 A6 @7 x  }
7 i1 \0 W/ a) M/ r# D/ c  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
  k% w7 ?  u( O( p( S  R
7 G% c) z9 ?& Y. y) K<html><head><script>! l6 ]- |/ d' s0 u9 H- w- `
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 X; v5 A3 d+ j  ]var sJsCmds ="" +8 a# _5 R( c: D1 n+ r
"?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" +
$ l: x" |- T; @2 c"";8 G2 V$ @2 o# s
var s= Carbosoft( sJsCmds);, M  s, Q: ^2 `- U$ E
document.write (s);& d7 w' Z8 m8 j
</script>
. ?; ]5 s6 |! }4 r& C</head><body></body></html>
3 v) Q' Q: O, y! D8 r
$ G6 s7 {$ R3 M4 @1 @" p7 C4 A0 J0 O  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:" e$ i7 g% E  b# l

! b6 a  O  G" }6 Q' G! G<script>/ R# e. P. X& j6 s0 e
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 ); }5 {- v& t+ d, m4 ]2 y
var sJsCmds ="" +
' d: _: t" x+ I9 e$ E3 @# D4 M"?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" A) ~+ T3 s1 F5 }
"";% J, i4 _8 n8 h4 l2 O4 `
var s= Carbosoft( sJsCmds);
0 {2 C, _, E8 B: H</script>& }6 E  B/ M! h. q4 \
<form name=qq>: {- G3 @9 a' @* |3 h
<textarea name=ww cols=100 rows=10></textarea>/ [5 T3 d' g5 J8 T3 V; p& e
<input onclick='ww.value=s' type=button value="解密">% p6 Q1 c5 j8 c+ e: m1 b0 f
</form>
" \: N' K9 {+ }0 f. a! |& A( q5 B

3 q, W  |( `- d+ a方法三:& m' Y- `9 E2 H  j* B) b% n

- l3 {7 P* ~  U. t" g( F  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
' P  q7 ~$ l( r) p7 \( N
' W' l( k0 }6 T) c4 M) `: E( k9 z/ c! c0 E<HTML>
( R* Y$ H" l! _1 x  J<BODY>+ v4 \- J  j0 r0 p0 d  M
<SCRIPT LANGUAGE="javascript">
7 ^* }6 h; c3 }+ o$ N2 [function Decode() {
, ^- b3 r; L  W6 Pd("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;}
8 G) q9 c  P6 H' x' ^; j$ B3 q+ x$ u</SCRIPT>
, q3 u% P. k) N8 w<SCRIPT LANGUAGE="javascript">
6 b; r- O5 l9 j3 n$ Yfunction d (enc) {document.write(codeIt(key,enc));}
" z% V, M; `7 F+ mvar 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;}
8 o& O; x) @0 @* ~</SCRIPT>
9 f" D1 I! w5 d. S! Q4 A* j% x+ e<SCRIPT LANGUAGE="javascript">
: p5 v7 S0 t: W1 N& @9 V/ jDecode();7 E+ d4 V, ?9 [
</SCRIPT>
3 f0 P! D( d' x2 O</BODY>- R' A8 z+ I% m, p" r+ X1 `
</HTML>
  Y' @) G0 g9 g. h( g4 o1 [
) x, S1 w1 R+ a. F: x$ Q  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:7 {* R( |6 ]3 d0 C

8 N8 [. i) L) w( h4 A<HTML>% ~% q7 g$ f% l
<BODY>
  Q( ^  T! F$ R  ]& d# T: H' t<SCRIPT LANGUAGE="javascript">
9 i5 A" c: e% a& k0 Z5 q8 ?function Decode() {
. h7 E  v/ X& Q) ~& N6 v& gd("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;}$ H2 e7 F+ z1 M, o: A( X
</SCRIPT>. v% L- `& W, m0 E4 h
<SCRIPT LANGUAGE="javascript">
0 P" L& V' h) J0 B# ifunction d (enc) {alert(codeIt(key,enc));}
* T: f; o: e, f" c7 Xvar 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;}! G; f$ A4 i6 w6 W1 f1 \
</SCRIPT>
2 x$ x& F" a) ^' s. R- J% f& I<SCRIPT LANGUAGE="javascript">& v- f: ^2 m1 V& z- M+ q
Decode();" `  ?1 ^* T5 }$ T
</SCRIPT>
0 G/ \" ^, k( H, X% c4 @9 L+ @9 K7 P</BODY>
( X$ G, d( q/ }; \# S- ~</HTML>
2 P5 b& w/ _- W& a) L
9 ?& h. b2 ?; m4 n7 v  哈哈!!:=)是不是很精彩!!

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