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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!. E% ?# a/ B& z1 S
+ j6 N, ]9 s% [

1 f5 V. j: J' h: ?/ g0 H9 e" G, U方法一:' F6 x: C' a# q) ?: z* p

" R, o8 @2 A" R. H) n9 m% p" ^, P2 ]" J* [4 ?; d& m+ t7 v
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:$ E% _1 @3 H  B, f* P
; }$ }4 v: x/ [" k9 t
<HTML>9 @. c2 q" r- ]- Q
<SCRIPT LANGUAGE="javascript">
* v: p* t- g8 r& n$ b+ m  Gvar 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"
; t# e# G8 t9 _var NewWords;
+ ]) p% I& X# Q0 G  Z6 z2 j2 HNewWords = unescape(Words);' ?: g2 ^! J! K
document.write(NewWords)) {( u0 u3 Y$ G0 T% h! m
</SCRIPT>
) m1 j0 ]0 O9 ~2 m+ p: O: K<BODY>* s2 t0 ~( y% f/ m1 F% |
</BODY>
( q1 t; k4 p+ s% _( V# C</HTML>3 a" x% B' _% k5 F' Z9 I

4 @5 g! z) L  {7 E3 U  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:: E! V* E  ]" d* _$ ^5 Y; `0 h
8 l6 p7 G& q" B  h) c1 b# f1 P! n3 V
<HTML><SCRIPT LANGUAGE="javascript">
, r( R8 q0 \# Vvar 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"
+ Z3 H" }- u5 z& Y2 Xvar NewWords;& e- D1 S/ c! t2 I5 d6 Z* y4 Y
NewWords = unescape(Words);; }; L" ~8 j8 m9 Y' x. D- X
NewWords=NewWords.toString();
% T' w( p0 r- i  ?1 Z6 wfunction password(){
0 l  X4 E% [, q' G7 J5 Ldocument.pw.txtpw.value=NewWords;6 h! [7 P* ~8 N$ C
}9 F: d3 {) I% C
</SCRIPT>
3 k; X) p/ ?# \; M3 B5 m2 |<BODY>( H$ ]% h1 K4 S$ K' v. M8 T
<form name=pw>" k3 E; J6 @7 k
<input type=button onclick="password()" value="解密">
; ?+ g' y% a) w) Q8 Q/ S- Z<br>
% {, L% R4 Q- j( r<textarea name="txtpw" cols="100" rows="100"></textarea>% k$ g$ ?5 r4 y0 a! P( w0 O5 |! H
</form>5 t' u2 V2 C+ T, ]+ w
</BODY>; J: F. y0 K# A
</HTML>
6 \+ ]2 E4 V5 W* [" w
8 s  S4 M# e) U( I2 h方法二:" T% Q. C- A8 U' h4 i1 E& g
$ K! V- B; R, ]7 N, C: P/ r6 M
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:: V! L  ~% P0 F1 L2 A0 \

$ v$ P, e* `, S8 D" t# i. [( U<html><head><script>
9 h: c, M2 \5 ~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 ); }6 ]7 J- b* M" S! ?. W- c2 j) N
var sJsCmds ="" +" x8 y6 K$ @4 V
"?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" +
+ ~; u. F& A* B! }"";* K" y% K+ s9 H# u) a
var s= Carbosoft( sJsCmds);- |0 h9 }1 W, V
document.write (s);
2 B/ D0 p# f8 ?% d) ^1 N0 d</script># z6 V  Z* R$ u! d" b- L
</head><body></body></html>
# j. m3 G/ y- S, d* U1 L, V
5 F1 }# Z: Z! A  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:. M& p4 p" I. g2 t% O9 b

0 T( t3 I. c6 U& v9 E<script>! ^) x6 `: q; p3 o& B  b2 Y- 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 ); }
# \* G  ]. q& j( D2 V2 z  jvar sJsCmds ="" +; \2 _1 b: g9 O) O" H- 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" +  o, }. X: K  x1 i  h- M
"";
' ?- _( l( `. w3 ~0 gvar s= Carbosoft( sJsCmds);+ s+ _1 K2 S* N3 a3 K3 a" j
</script>
1 r$ W, h& V6 ~( s<form name=qq>  O/ I* P, Y' g" Y# T: N: x
<textarea name=ww cols=100 rows=10></textarea>
) Q2 p2 ?2 H) I<input onclick='ww.value=s' type=button value="解密">
1 m6 P; ?) d9 v6 ~; x" d</form>
% R: M5 H( p9 w- m3 d( f0 s. w. j8 u+ f, Z

1 ?. a# `+ o& Q" L方法三:$ P, W. U& b& p* `
7 q$ [( R- i1 z
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
/ x/ V3 f$ M& r% _; f/ u
5 f8 x& m1 z+ }" s4 v; E8 J/ Q, j<HTML>
9 L. }! v+ I  T& y  Q6 D+ G<BODY>9 r/ @$ }$ {; ?9 L
<SCRIPT LANGUAGE="javascript">
& H( ]% V  Z) W- B  h5 r  \" [$ hfunction Decode() {  s1 ~$ o3 t9 _2 S) }; y6 p
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;}4 @- J5 m* ~- w3 u7 z3 @
</SCRIPT>+ R1 l+ k- E8 |/ _* p4 G" M  W
<SCRIPT LANGUAGE="javascript">
; h% P0 t. g5 t& v1 J5 ?function d (enc) {document.write(codeIt(key,enc));}' ~' C- W9 p/ D6 q: y( x
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;}/ ~0 y+ x9 t4 s$ ], C+ w2 \
</SCRIPT>3 a" T* O9 d8 r  n) k
<SCRIPT LANGUAGE="javascript">
" p. a  N2 \6 RDecode();
9 m' G5 w0 r: J7 G' V& o0 l# J- ^) W</SCRIPT>( [. H/ X3 o6 B' o9 t
</BODY>
5 n6 @' G: G2 C( o: Z</HTML>& `- X2 H5 ^& U+ W
  ?* B( I" T2 V- |( w' v$ y" j9 S1 @
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:1 c# c* p" s! @
: R4 p, Y7 h! M1 }" H0 o+ b
<HTML>1 A9 C4 E; B' Y3 P& u, M# r
<BODY>
# \6 A. V% H3 o6 I& |7 w<SCRIPT LANGUAGE="javascript"># F# h  \% M1 j/ k! \! F* }
function Decode() {
3 m: c/ b! j- C$ 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;}
* l2 A$ ]: q% |/ R4 I; o</SCRIPT>9 T6 z$ x- [( k/ M( o) e
<SCRIPT LANGUAGE="javascript">
  ]9 m  f2 f: }4 A. O; ^function d (enc) {alert(codeIt(key,enc));}! _+ b  t' V6 y3 s
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;}
! |# ]! m- R% y1 G% g7 {</SCRIPT>
$ T! C8 d$ E$ R<SCRIPT LANGUAGE="javascript"># ]* @6 y, c% i/ A$ @  v
Decode();
/ x  T" @( P5 y7 k6 \, x0 j& ^! \</SCRIPT>& u( i+ a, P' y+ {/ u( p) ?, u- P0 w0 u* ~
</BODY>9 T8 H# v) L+ U$ f
</HTML>
: W' b8 Y, A) w" w4 i; [! O$ c6 Z7 n- A. L% c( H& T& m2 D* e, F- i
  哈哈!!:=)是不是很精彩!!

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