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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!) j. e) _- Z8 D2 R. j0 O
( z$ Y5 w; s4 t3 l' J1 W

5 ]/ b8 E, q0 c; |方法一:9 I$ K  O! ?' f; S' c9 D
& [+ F( [+ S: A3 ~, ?- R
1 B/ v8 l# A+ Q
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
; Q0 e9 E3 j8 D3 h( H* r, W
" b4 S- E4 E1 I' y( P<HTML>9 ?1 s) V( l/ Y/ ?. S% ]7 ]1 j
<SCRIPT LANGUAGE="javascript">5 h9 L% w  d" f6 x
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"
. n' D! ]0 U1 `7 Rvar NewWords;
& Q- P$ b, Y( a- x$ B1 qNewWords = unescape(Words);. O$ O( e) ~* A' X  m
document.write(NewWords)! ?: g: E3 ~9 M+ c6 W3 I; [% o
</SCRIPT>
/ o3 L# v5 I# `1 u<BODY>
" j) S& y7 r6 k4 [, T6 J; ~</BODY>+ u& |& B0 Y4 E5 q; x" _$ ?
</HTML>
! _+ _& z$ }" X( {% p3 x. M" L# u* g/ p
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:* \( ], [; g" A/ y) u8 s7 }3 ]

: p" p' E) [( F( P: Y$ u  F5 m% P<HTML><SCRIPT LANGUAGE="javascript">& u  @. H) I- x% }* N, G
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"
. P* L$ N3 f9 }% i- k8 X9 a, f( Wvar NewWords;' ^) o; q5 @# f
NewWords = unescape(Words);
4 r: ?0 d. c1 V1 Q3 I+ [NewWords=NewWords.toString();5 F: l/ k" Z/ o
function password(){5 `4 v* ~7 G9 T# B) l
document.pw.txtpw.value=NewWords;3 q( n& @6 _; @# l: T
}1 \0 l# u3 f( Y6 n1 I+ _
</SCRIPT>
. f9 k! t1 k. Z<BODY>
9 j) r& ?2 L+ d1 |9 N! H<form name=pw>
9 g0 m. s9 z2 U<input type=button onclick="password()" value="解密">6 a; n) C! ^( N' w
<br>
! R5 Z4 R4 t9 x( |9 ~% n# i<textarea name="txtpw" cols="100" rows="100"></textarea>+ \- O/ V+ n$ F. K1 V. }5 L: x- m
</form>
) q( {$ V, Z4 x</BODY>' k1 v1 d% |8 p$ W8 ?
</HTML>6 q; P0 M: H4 y$ [
( O! m( o- m7 p
方法二:+ v! x& g1 q5 h# {: Y

- @9 _! N, @9 O  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
2 C: |  Z& \$ k; l$ K
7 V; C& v8 z3 e; s/ Q- J<html><head><script>  q6 {, I# H2 h/ k4 G
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 o. p# V3 H1 ?5 `var sJsCmds ="" +( w, G0 @4 [6 h  g' p$ Q1 k5 @
"?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" +% f1 w1 l$ C. N' p; L6 Y7 D
"";
7 H; |, g2 C& U7 W/ e" N7 Svar s= Carbosoft( sJsCmds);
; L% i7 M% g# c( {document.write (s);
0 y+ ~" i7 [( T9 ?; W3 |</script>$ L3 Q- l$ `+ S: m; k9 W7 W
</head><body></body></html>
( A/ z7 p. m, B' ~) h5 g# f, h, z; M2 Q! `
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:% A$ A7 A( q6 R: \
" d* l7 ~7 @0 ^7 B6 Q
<script>
0 C1 k9 @6 d! ]: p% r+ @9 t1 ~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 ); }
, j" ?, a; ]/ V6 B/ ?  s4 n0 [/ tvar sJsCmds ="" +6 Y- K1 A  R( ^/ a
"?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" +# h, I2 L! A0 l' T# X& R+ C
"";2 e! @/ t1 C8 O! z0 @! z, G
var s= Carbosoft( sJsCmds);6 |: ^. M0 I" j% W0 M
</script>: `8 w: p1 H7 W& e( ]
<form name=qq>
  a# w" `- o' D<textarea name=ww cols=100 rows=10></textarea>/ k, g1 N9 d0 @, A, P" i
<input onclick='ww.value=s' type=button value="解密">6 v* P6 A' q0 S; R
</form>
; A# M5 A. v* y) t5 Q* }; F
0 f0 A( N7 @+ _8 X* I  }% s  b* ^4 z. S/ M
方法三:
5 j! }- U. z5 i; ^7 u, ~9 l! x# G0 Y& _; e
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:! e5 [$ w% `7 s4 m  B- Y
6 W9 N" {( {, _% ?6 E9 o7 w/ _, {0 x
<HTML>
) D: z1 m3 a2 d' l) U4 V<BODY>
5 E/ F3 U* ?" M& T' S& O<SCRIPT LANGUAGE="javascript">) i+ {5 C' k) x- `. E. h
function Decode() {  h1 w' w8 t2 U8 d+ D( B. R  l
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;}
/ V# x+ D  i0 w3 M8 i</SCRIPT>4 J- C! d& s0 [  \, U8 k
<SCRIPT LANGUAGE="javascript">
/ r8 o4 r8 I/ k$ M' |+ G0 Ifunction d (enc) {document.write(codeIt(key,enc));}
! V# `8 U+ g4 m: n# N/ O- @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;}) t7 E7 w* d9 J8 X0 X9 j& Q
</SCRIPT>  O% U2 O9 M, D8 o( k
<SCRIPT LANGUAGE="javascript"># \8 w8 A3 D( P- o  `
Decode();
# ], {$ w9 ~' h* s" e; l& f</SCRIPT>9 o5 `+ u0 V0 j* G4 Z
</BODY>
( ~  j1 ^- v: D, d6 i5 X' z</HTML>
8 C% f4 e4 p! J( ^; z1 ^& w4 w0 F% m7 K7 ^7 C% _
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
) W# B! `7 h; p# z3 O9 K- ]7 z+ {5 }" }; ], X
<HTML>6 h' r: x7 ~0 u4 M: l
<BODY>
( r9 a) E8 y0 }; l7 ~6 C<SCRIPT LANGUAGE="javascript">  S" s5 W: `" D) U& P: X
function Decode() {
6 Z4 z' z; V+ ?: a7 Wd("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 n" `  K9 x, x. K/ m</SCRIPT>
! a( ]- T: q/ r+ {6 I7 o<SCRIPT LANGUAGE="javascript">. K& p" V+ o% n% i4 X4 ^/ \
function d (enc) {alert(codeIt(key,enc));}
, X) [5 f* D# E0 B* Pvar 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;}
+ f( c7 I$ v  c' E2 y</SCRIPT>
& |- v& r7 q1 I% S2 c<SCRIPT LANGUAGE="javascript">
4 a' \: y2 R5 S. y' W- c# BDecode();
5 c0 ?1 E% Q! ?5 r6 L- r$ ^7 O5 j</SCRIPT>
$ z' b9 l' Z  b$ S" A; g2 j6 p</BODY>
- F1 Z9 k  P# D* ~</HTML>$ U$ ~' |# Q0 w# b$ u+ d! r
+ Q  p1 Q  ]- V" K" D
  哈哈!!:=)是不是很精彩!!

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