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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!( L, }3 e3 R2 l% @# a3 U/ U

* i+ ?. F6 ?- i6 m' F2 w3 @
& M7 N9 q. F4 L1 w7 |- P( p方法一:6 Y6 j' S$ |0 d6 s% l
% e/ `3 O; R1 \& ~5 ~, b. i& [7 w
7 e" I. Z2 ~" o8 p( t) w" }" C) r
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
  b' X0 y% @7 H, y" v$ a+ N  r- d, b# @/ S. {/ N0 H  }
<HTML>
  z/ j" P& H, f+ d<SCRIPT LANGUAGE="javascript">
4 {+ ]# c& m4 f+ Yvar 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"
& D: Z- \, o$ r8 t5 o( kvar NewWords;
! W$ L# {: L" h5 u. b: m$ ^NewWords = unescape(Words);
4 ]* d3 q3 ^, |% j& C# O$ ddocument.write(NewWords)
' R# ^  L: B3 O: k6 e</SCRIPT>: ?! {4 W  V. O6 ?
<BODY>
2 b/ ?/ g: n/ g& E; O</BODY>
  g5 k: d5 A9 H% R  G, B</HTML>+ Y/ J( I' p) _5 r. r. R

! _) f5 L  m$ S5 ~) I* K4 E  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:/ ~/ v% l6 B" w, V' d

# @8 I9 S' Y0 X" @<HTML><SCRIPT LANGUAGE="javascript">5 @3 k  P4 ]* u
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"6 D% ?, `/ r! c9 @7 r
var NewWords;% _  I& b" y3 `& [
NewWords = unescape(Words);+ X5 M4 ]( J6 J  y8 `
NewWords=NewWords.toString();
: f6 M) n) Q1 j0 k( h2 \function password(){  c, d) G$ g) ?: ?
document.pw.txtpw.value=NewWords;6 B. ~5 h: B0 m: [* s' l
}
( ?' \, ~8 i5 P+ K4 N</SCRIPT>
8 \" _6 w* M& t9 T4 Q<BODY>. h" t9 p- g- m. a  [
<form name=pw>
& c; m) `) \6 w6 d% _<input type=button onclick="password()" value="解密">( f2 M" o, d! h6 ~) n$ K
<br>
% T& R3 j5 R4 {! ]<textarea name="txtpw" cols="100" rows="100"></textarea>7 E( w! h; k0 s+ @
</form>
* [3 |4 ]7 G- D, U</BODY>
( n* w% d* ~% H8 ~; o</HTML>
: t" R, p2 c3 T5 R1 U& R, |; s, |5 b, I$ c* W* g9 F
方法二:
" h( O& J1 F' z, A2 J0 r
6 c+ z8 M" D" P( M4 u  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
/ b& k" H  _* r& j' p
2 q2 N" I: P" @& w) h<html><head><script>9 {! g" b4 X' F9 I: c
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 F! l% b1 ^  n* {. Evar sJsCmds ="" +8 q( v2 W- ^) i+ ^7 R; }5 B0 s+ j
"?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" +
  o2 i% T8 _. s" m"";" I) }  U( ?# x5 v* ?
var s= Carbosoft( sJsCmds);" [, A4 S6 k+ S
document.write (s);
6 ?; f/ o7 H# N3 I% A9 J9 {</script>* t2 C. ?0 _: X8 `
</head><body></body></html>
! [/ |6 F9 K& {8 _$ K2 e7 ~" o, m- S) w4 r; N# `( j( t
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
! u9 ~; i) W6 c- s5 l( K/ v4 k1 w( J' U$ Y9 F
<script>
' j1 I# n  R3 }! v/ t* Z4 f2 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 ); }
* S: Z1 K( Z9 k4 z% e( Avar sJsCmds ="" +
' Y* L7 y' V+ d1 T# v* S. @"?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" +6 w+ P- S/ w0 x+ ^8 f/ J7 m
"";
! E9 h# t. V8 A* ?) d  s: ]var s= Carbosoft( sJsCmds);) T" \+ l& u! U% g4 ~6 D
</script>% W8 z" h3 }1 ]+ h) j0 J4 `
<form name=qq>) K7 ]+ p: l5 g& \: D, P
<textarea name=ww cols=100 rows=10></textarea>
. z& c, m; V  R! k3 ^! d7 P. x  H' L, Q<input onclick='ww.value=s' type=button value="解密">
% ^  g8 q/ V( c6 H  u</form>1 C# d; ~3 B0 P" _, S2 D/ S

4 D& J8 U, R- V6 j" a3 A) J
+ s. c' r" M4 m6 ^; G方法三:
. F4 [  |' W; ]% S. ~6 }) Z: t. k/ L
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:" d& Q5 v( z% n9 @' L6 j8 F3 m
: x- y7 J6 G3 s. Q. r! ]/ y$ {, o) [. {  X
<HTML>, Q- i: V: |1 W, e* B" H
<BODY>
5 M! L/ H, c. u/ A8 h+ p<SCRIPT LANGUAGE="javascript">
! x5 q, A4 F9 ^function Decode() {, Z& `- b7 N: p3 g+ N: B" K: B
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;}) I" x$ h% g7 C& I) C4 i
</SCRIPT>
! u9 M8 }  Z8 x3 u  X' G<SCRIPT LANGUAGE="javascript"># c/ g  y0 x5 A
function d (enc) {document.write(codeIt(key,enc));}
( F" m" _' V6 |* a6 i( O- Yvar 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;}9 B9 Q( A1 l) s% I! Q7 I
</SCRIPT>
/ [+ m/ h7 Y0 K' g- {<SCRIPT LANGUAGE="javascript">
' r! W' ]& H( u- a3 VDecode();/ v! @9 \/ p5 J3 X5 l& H* Q
</SCRIPT>
7 S1 C1 x4 l: E% X</BODY>3 p. l# h) b; b7 q
</HTML>1 X) M& F5 r/ L$ Y% j4 w# x

9 P/ x0 U$ H: [( u  e  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:6 c+ W; X8 R) u. K$ |: q( m, a
9 _; Y/ \; P8 f2 ?8 T1 Q7 n
<HTML>
/ Z  l) x0 t" J. d  }<BODY>. c5 ~) e$ Y. U5 ]5 e; `
<SCRIPT LANGUAGE="javascript">- G- p+ V5 S+ a" m$ s7 e
function Decode() {( U. |. T: N% C6 q  I& h
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;}
# P6 ?; ~, P+ n. ]+ ?</SCRIPT>8 A- B: E& }! g6 O# M6 F$ P" y
<SCRIPT LANGUAGE="javascript">% b- d3 W0 T* J8 y% s9 w/ J! v* B% s
function d (enc) {alert(codeIt(key,enc));}
) ]/ Y6 C) S' f9 O* 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& l; B4 i. z0 P6 C2 j
</SCRIPT>( Z& P4 M$ B) f3 I8 w
<SCRIPT LANGUAGE="javascript">
, v$ w. m6 q/ T* _0 ]% n; HDecode();
$ p0 N. P. B6 d; z6 x3 c7 s</SCRIPT>
+ D4 ^, i! `! ^$ S- ?</BODY>
  H$ O0 x& v& }! w; D</HTML>& h& m! E$ l/ p" ]. @
" T( Y% Q  ^, O+ r
  哈哈!!:=)是不是很精彩!!

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