Board logo

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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!. L: z7 b/ j1 [* {! S2 g

0 o0 k$ Z' ?  E$ K( R# l5 m* b) ], e* J, c7 T) e+ P: n) n2 d) X
方法一:
! Y% x- b, x" \+ O4 n5 `8 M: `! B. F* p. j5 X1 C; S! r5 A& j: G" t  C
5 B6 A; X0 x& |# K9 `
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:4 @: ?2 `7 o2 l' E; H& Q8 c8 k

' G8 N- F- z3 U% |<HTML>( H2 h8 j% U% F+ Q- H" n
<SCRIPT LANGUAGE="javascript">
5 A( y* r; y+ j4 ?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"0 q' A- |! R- D- [+ N" k. n
var NewWords;! c: L" Z- r/ m  K1 q/ t( J
NewWords = unescape(Words);8 ?/ x, X, G% X" z
document.write(NewWords). D7 ^/ `8 n; x7 W9 X$ w5 A
</SCRIPT>
+ H% r2 a+ |0 n<BODY>
' D9 g4 ~9 J9 m) m- r& b/ B- w</BODY>
0 a  Y: V; \9 F. L</HTML>) |5 S2 x2 U+ Q8 ?: d# T, k

( [& C8 S% r5 u; `6 [! x. `  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:- c3 R7 `2 @: X6 ]) ~4 Z9 [

2 i% H* v8 H3 B# d, M$ e  z<HTML><SCRIPT LANGUAGE="javascript">
. }& a3 Z* _; _+ [: u1 f! Xvar 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"
. j" D  _. R! C0 Uvar NewWords;6 ~& u9 E; U* l  |; @7 C7 l
NewWords = unescape(Words);
% ?2 k4 m8 k3 X6 _# V' E, |NewWords=NewWords.toString();
" B) ]5 q, B8 P5 e+ _function password(){
1 W) Z/ {5 S' ~. Qdocument.pw.txtpw.value=NewWords;
) h" x3 c+ \$ n# F" ?0 f7 N1 R. Y}! _3 s: a. ]- Q$ }, M1 A+ I
</SCRIPT>
3 F* B! U- _% u. N! o<BODY>0 F* b. u/ Y  i0 H6 w
<form name=pw>
  _' s; Q( U+ w4 Z<input type=button onclick="password()" value="解密">
+ ]' v( ?4 s9 P; p$ f" B<br>" ?; r7 E& D' y2 T6 I" L
<textarea name="txtpw" cols="100" rows="100"></textarea>
% I# b0 U  S8 o- j: }& F$ W; @</form>
, r, w" j5 ]7 z" r- E4 v1 m</BODY>7 i# u9 E: R5 _! z
</HTML>9 s, b* R$ \5 ~9 c$ O+ ]
% H/ z  ]7 _' M! `: T
方法二:
8 Z! o( W1 E/ }" Q, s+ m1 f4 \6 r& V3 ]3 X
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
5 b# h' l4 ~( r9 d4 `
# u: X" y, g0 U9 k. f; Z<html><head><script>
9 N% S: d4 u5 w* t5 @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 ); }
! W1 o- I7 @4 W# I7 Yvar sJsCmds ="" +* `9 P. v. ?. ]3 M0 h' p' ~2 i
"?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" +
5 k' \, k6 N8 v' S3 e2 W2 V"";* m" h8 v/ a, b0 }1 b2 \+ O
var s= Carbosoft( sJsCmds);
; a) H. g. V6 k' U+ Z/ l5 sdocument.write (s);& d4 w$ M6 q9 s  V2 R
</script>
9 u& k* Z% ?: ?0 o/ C0 ]) Z" `  L2 ^</head><body></body></html>
( v9 \- P9 Q  [. A1 s2 T* J1 K8 U! e! f1 i6 Z& p9 Z0 w
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
( O/ z) L) F" b: h: }# g, p& q. c0 t+ w* i4 h+ z
<script>( j- K* ]# X7 T& j6 o0 Y
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 ); }
2 [8 C% Y- P- U. ^$ s8 Zvar sJsCmds ="" +
4 c& T4 R& B9 p: q; F"?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" +
2 R* l( F# y6 e9 b"";
/ G9 ^4 ^( G# y- x) Y# L' e: Wvar s= Carbosoft( sJsCmds);% |! O9 b; M( a
</script>
) g- W' b7 M) G' u<form name=qq>3 o; c; }, _& U1 b, M' V
<textarea name=ww cols=100 rows=10></textarea>) m- T3 m3 ^. a  C  }0 B
<input onclick='ww.value=s' type=button value="解密">
6 x  }% ~5 X2 f0 Z" k8 W0 ]3 a</form>' {4 O" M% O0 B! {6 |0 {
1 d# s; p- X) v9 ?  C/ a

$ ]6 g# z7 c6 Y% s1 \方法三:
( C. o7 u( Q+ ~0 b7 ]
6 ]. l% H7 t& S9 a; n  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:) b. l5 ?, W. A
5 ~/ M6 h" F! s" }2 S
<HTML>
; ?, `8 d9 A# p% \<BODY>
2 l  O5 }; C9 u. s! G6 Q5 x/ B9 T<SCRIPT LANGUAGE="javascript">
8 ^* Q5 j1 `4 M5 Wfunction Decode() {
# X/ t' V5 \$ `/ od("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 p  w; A+ U3 M$ S9 `0 q
</SCRIPT>& Z3 |; K+ z1 T- p' \
<SCRIPT LANGUAGE="javascript">( v4 X& Q7 \! g' R, o
function d (enc) {document.write(codeIt(key,enc));}
5 y7 l9 ]9 r8 L8 \1 K' }. _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;}- b% c3 t, {& S' T
</SCRIPT>: j7 C5 k# v9 p( _1 W2 V- f
<SCRIPT LANGUAGE="javascript">
1 z2 @  k! o  C. G- I, h- rDecode();
6 C  m: ]& F" _0 h3 F! h5 ~</SCRIPT>' k) w# r1 U7 ?$ k' ?* i. J
</BODY>
# r. E2 t( m" ?: \( A" I( w8 J</HTML>
3 u0 a& K, B6 ]6 g. @
( w0 Z+ O# p( ?4 `4 H7 I. s" _  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:# r- l) q3 h( }0 _9 y9 o- t- i7 D

3 l5 }& d  S% `<HTML>
$ L  H, z0 j) F) z5 P+ k<BODY>* G; l0 r& S' h( s: |3 X' R
<SCRIPT LANGUAGE="javascript">9 S& o1 e$ e9 Q1 n6 e0 H; V
function Decode() {& K$ ?; T9 g0 z( m. K* I5 a' X' Y* o
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;}( t: u. j5 P$ _2 j2 {
</SCRIPT>, e8 w' G! o9 v( {
<SCRIPT LANGUAGE="javascript">
: Y; V% D( m# |% W# H( p+ G& d8 Dfunction d (enc) {alert(codeIt(key,enc));}8 f; Q- \" i5 e
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;}
* B. P) G8 d& H/ V+ q" t</SCRIPT>
% v# T3 s  r& n% y<SCRIPT LANGUAGE="javascript">
! w# Q( T6 E$ V. Y6 ADecode();
9 U7 m; N/ f8 a6 @</SCRIPT>
4 O2 T/ l" ]+ A2 Y. b% ?</BODY>
. r0 Z7 M8 N) l4 |) G& w, v7 Y6 \</HTML>
% a- i2 ^. W3 u+ }. s# l7 U; t) W" R' E' T+ ~$ A/ ~0 U
  哈哈!!:=)是不是很精彩!!




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