Board logo

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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!/ g% m* Q  X# H  ^5 S) x+ V

$ m$ s$ B& e5 A8 o# }8 S& J) X5 h$ |3 l) x5 Q5 Q, @6 n" R
方法一:
6 X% _' D" Y4 }, ]9 b8 I1 _& I) }. o$ f

5 L0 t5 x" [/ Z" H7 x8 W% g  m* ?" @  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:0 K+ |! {. b  y, O; O
) O/ u: K/ G3 u7 u9 p: i1 r( Y
<HTML>
+ P& Z4 b6 C; {$ A9 G: \# w, S" v<SCRIPT LANGUAGE="javascript"># L  i7 ~# s$ l" [/ `2 E3 R
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"% d4 q, \5 Z/ K% Q. t
var NewWords;
) z6 I: b) p1 W( ?' {( W/ H# R3 k9 QNewWords = unescape(Words);
9 a( W- f& W4 X" Qdocument.write(NewWords)4 G5 A1 i; O4 p# T. E
</SCRIPT>7 {' X/ p  C! w$ c
<BODY>" m) D7 N# i! ^
</BODY>
9 Y1 U( `2 }: u0 e4 U0 a/ ^! w</HTML>
( ?+ g: g& n, i* e! p
/ ?" h2 q7 a, v7 X" L3 ^  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
) |$ B1 f, {" e% B, L
8 x' J1 y- t9 t2 s& P4 E! K<HTML><SCRIPT LANGUAGE="javascript">
4 |( \  p3 S$ r1 M; _6 O. O8 h* 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 u; ?% ~+ U0 t) Xvar NewWords;
9 z; g7 H, z9 X2 QNewWords = unescape(Words);* u" s7 D0 C1 {" i" c( y5 X3 E
NewWords=NewWords.toString();
- f4 h4 \6 s' J# Vfunction password(){
: G  e  O' ?# g6 L+ _document.pw.txtpw.value=NewWords;
8 O0 D+ C8 q& d  G4 c}, X, |$ j* i$ U; \) `) V7 x3 w6 w  j
</SCRIPT>! u! e/ S- v1 J5 i5 E: [- w
<BODY>8 f. p" B8 S" g- n. W9 [' ]
<form name=pw>0 ^/ q( ?$ {2 P' B7 {7 u7 D
<input type=button onclick="password()" value="解密">
0 ~% G) w. t- M<br>
. J  C" h* c4 R4 }6 B+ H/ G5 T<textarea name="txtpw" cols="100" rows="100"></textarea>
# ~6 F9 l2 X, J2 d' ]0 ^</form>
: l- V4 S: q' m2 p# w3 e</BODY>
, A( s: g# n+ O4 M' o, v& }: K</HTML>4 q0 ~- L- H$ U$ ?! p
2 W3 c$ l  V  }  E
方法二:$ k2 p# d7 G8 A1 W- p# f
! f3 y& v/ X3 h/ x, b$ ~4 e& D
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:" L/ n. l1 B; P
7 c) {4 S: {/ E; x. ?; W
<html><head><script>( x# a; C; h& e; p9 o$ [9 p: m, b
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 ); }
1 F' L- b# |1 ?0 Svar sJsCmds ="" +
2 x/ Z" f3 q1 @5 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" +
" B7 t) c- k& p+ k$ T$ e. c0 R"";8 M( w' W( T' l; o! i* c) c
var s= Carbosoft( sJsCmds);
9 M' q; [9 {. ]$ g3 gdocument.write (s);
- j) ?  n5 T3 Z7 p0 L</script>) R3 M$ u2 K6 M  \3 c" S* [
</head><body></body></html>
* v  y/ x1 k3 g5 R. _8 [1 I% R
, D# G6 C+ X% p6 m# |8 y  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:: `0 O% q7 j0 u1 s- U% w
" }1 K; v7 D: F8 T* V
<script>7 G* R& ~* d( q: i4 G, 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 ); }# V5 G: u9 u7 m3 u! }" l! H
var sJsCmds ="" +# a9 d$ s8 ?* X5 `
"?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" +
* ?7 ]/ p/ u  T. n, x) ?1 u+ j! v"";' e/ Z3 b8 Y$ t, w5 B. x
var s= Carbosoft( sJsCmds);/ \' n3 I3 U, {- Y/ k( Z' S/ Q
</script>
2 B$ R: g7 v  I3 b3 X' V<form name=qq>
! C* J7 y* G! n* S3 w<textarea name=ww cols=100 rows=10></textarea>4 J* x5 F8 N# b" h7 a& h$ N# Y" G$ @
<input onclick='ww.value=s' type=button value="解密">+ u/ l0 ~8 k+ L
</form>1 W4 Q6 n; ?7 i( Z
+ [0 C. h  ]5 D* V

2 K+ O4 t* Y" I4 s. [6 l方法三:2 t/ u6 j0 Z% [! L6 P4 [( h9 P

) z- x+ w: [% r2 Q2 K, @0 y  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
( G7 N1 Y- O& E  [* \
: G1 w; v$ d! S" f+ E" s2 l<HTML>" C" w8 I* r- i. y' O# F; W
<BODY>
# c2 c' X7 Q  O# S2 Q6 \<SCRIPT LANGUAGE="javascript">5 Y; b+ p  R. ^4 m& o
function Decode() {
% t; X6 W: a8 o  m" [, sd("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;}  z% Q9 R- b* W% w7 T
</SCRIPT>1 X$ J' ]; Q/ a5 P+ E9 ^8 n
<SCRIPT LANGUAGE="javascript">: S7 o8 `* Y, d( ?7 j; ~! F0 V6 g
function d (enc) {document.write(codeIt(key,enc));}
1 j  J  G# N7 j0 F3 r* l5 g" Ivar 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;}! h! \* _- D/ F
</SCRIPT>
; e; s1 C- ?' n<SCRIPT LANGUAGE="javascript">) J! q' a$ t. Q9 N
Decode();: u, p! p* V0 J; U; M3 A6 P
</SCRIPT>
3 M: Z, Z& O& }+ P7 g$ i6 S7 s</BODY>
/ Y! ?. o$ @% o8 H' R& z1 U</HTML>
7 a' l7 q. x* _8 U1 F
, }5 K1 d& Z$ d) A$ n4 P8 C  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
$ V1 b5 Z' W; H2 L1 O; G8 y) m& p$ Y' T9 @
<HTML>
% \# l" a! e+ s$ ^6 F: q<BODY>
( [- V" E. W! `( @4 k* x6 l<SCRIPT LANGUAGE="javascript">2 I/ H1 {6 U- _2 [' T
function Decode() {: t5 E+ P: C" b/ r% U
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;}
% a" v: B- s* u; G* o- H+ u</SCRIPT>
5 d. z$ d6 r7 l<SCRIPT LANGUAGE="javascript">
: ?* F0 M3 K: f; X( gfunction d (enc) {alert(codeIt(key,enc));}
' R/ U% C9 m. D% w7 Svar 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;}) l/ q" H4 J/ r$ S+ I
</SCRIPT>  \" W7 |& T( V  j* u  _" R9 p
<SCRIPT LANGUAGE="javascript">0 R" l/ F$ l9 Q6 h5 K* U( l
Decode();2 r3 k+ E0 j" B0 U" \
</SCRIPT>
1 i% Y/ T" y2 c2 V/ p7 M</BODY>
1 [; T$ Q2 l1 a+ W</HTML>
* }$ d+ M1 i, k" x  N
/ k. P( c5 s5 J; p7 a  哈哈!!:=)是不是很精彩!!




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