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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
- v" h, T+ a* M- [. G0 W4 w' H8 U2 Q8 g: m6 Y5 z- Y, [* F
8 C, A  Q2 g3 ?  Y8 ~' P7 J; i
方法一:1 Z$ S; H& \5 ^  h/ H4 S; p
% \3 V& j8 \# a* a: T% E

* r5 y7 C3 [5 v1 e  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
- E4 S' h* S! K% \$ _# r* }$ g+ u$ O. n
<HTML>
7 e4 `7 q3 K! P" _) X, W! Y<SCRIPT LANGUAGE="javascript"># z- K, @8 }3 o3 p: z3 p$ ]- h
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"
) f( [* {* b: G: m( `var NewWords;
2 D9 c; M6 _. i" N* pNewWords = unescape(Words);
5 v- t& g; N+ fdocument.write(NewWords)9 e; i) w: K3 `5 X. S
</SCRIPT>
# h9 Y0 f  [7 ^- I; m8 }4 C<BODY>: q7 T9 F" V% N/ E, j! y! [% _
</BODY>
- r6 U/ I5 A( Z' z7 S; O$ A# P</HTML>
0 a/ k+ a8 `2 G/ X3 U; [7 ]4 G$ {$ q- v1 k9 k
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:* Q* S* i0 y- i- j; n1 H

8 |8 E1 m) Z. F2 k3 a<HTML><SCRIPT LANGUAGE="javascript">
! ]$ I: N# z- M5 p4 v1 p& rvar 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"2 x+ {# g2 }/ Y  c, v5 a4 ?% D" S
var NewWords;
" I" h: W" v1 GNewWords = unescape(Words);
- W, ?/ I5 C: HNewWords=NewWords.toString();
4 ]5 P6 ]! t0 Y6 q; x3 A/ Bfunction password(){0 h% U& H) ~; V7 A: u
document.pw.txtpw.value=NewWords;  o4 m- B; {( I
}
- _8 n6 j. Q' Q</SCRIPT>/ W2 U) {% x9 F
<BODY>
0 g: {( J8 w) Y2 m. x1 h# `+ ~- ]! E<form name=pw>
/ L4 b" v1 X4 ~  w' p8 Y<input type=button onclick="password()" value="解密">
3 l. w# f: b  p0 z) Q7 d* I<br>
$ m. n/ ?  y' @) A# D+ p<textarea name="txtpw" cols="100" rows="100"></textarea>/ b" K0 u1 k0 U8 y9 W7 P
</form>
! y3 u  }& t! U$ \</BODY>
1 o7 S& I5 q7 J' H</HTML>3 F2 H9 e; w% f5 W& h

0 b  O: ~& {3 n" x% _0 u方法二:
( z$ N7 B- z9 E8 c7 N1 p; e# y. G. D0 w2 f3 f$ b+ @! ~
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:, x7 [9 ~# s) g; \4 p

0 t+ r' S3 q4 E* H* W! `. R<html><head><script>' P/ V% a, U$ m$ o
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 K& x; j- s9 E1 O7 ~9 G5 y, yvar sJsCmds ="" +- {  U1 |3 g9 Q" N7 p
"?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" +% q4 E' v, g( ?6 _& |. \
"";/ @3 X7 p0 A: s$ t" X
var s= Carbosoft( sJsCmds);
9 S  U# J$ m, o4 z5 L5 ^document.write (s);2 g, q& B+ v7 m3 @1 P% a
</script>
6 \# W3 f- m# e- ]; ^2 A3 S3 b</head><body></body></html>% A6 H- `+ i) w% R/ p: u3 ^- [

' ~: s  j4 P5 C% J+ [( A( f  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:* ^$ m3 S( I" t, h) y1 A8 p9 ?
: r, K0 F0 t! b: q
<script>: `4 M; l, r# q* L
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 ); }
7 a, g' s' I, K2 h. x+ }% X4 u4 C' f8 Pvar sJsCmds ="" +
1 Y1 N/ E: G. |* f2 d"?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" ++ U0 g9 I3 D& H6 A+ L7 M& t9 }2 r
"";
) a% Z5 f8 \/ c; n3 `var s= Carbosoft( sJsCmds);( c/ e/ C: i7 x: p9 {
</script>
. K% w! A% K3 o0 _8 _" s" B3 X<form name=qq>
, {  f: s" S4 @<textarea name=ww cols=100 rows=10></textarea>
! S. \! V. w& g3 N& d" ]6 z<input onclick='ww.value=s' type=button value="解密">
( R5 s+ L+ y; `/ b</form>9 e# C" }/ }( T% z8 a3 h; p) Y# i
+ m6 n' l  l& m* q7 z% O1 h. h

4 g0 o7 a$ p7 M! f7 C3 c) v方法三:
- p7 V2 ]) l6 q
. b3 O+ u( F  R0 R7 r  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
( H0 R3 T8 w, z! a) _) a5 d; u! t1 R4 V) b7 j
<HTML>
0 v! @- Z3 W5 o1 A; q' E<BODY>9 a. _. e+ M* j) B. f
<SCRIPT LANGUAGE="javascript">
1 f% f8 u3 F- ^) s; qfunction Decode() {5 a) G4 v7 I+ ?+ ]8 ~4 e1 t3 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;}
) Q# _  S) D' l% T& n6 z</SCRIPT>9 B8 V/ X3 ^& S. T! a+ x: }
<SCRIPT LANGUAGE="javascript">* P* }# N1 w$ [( N; Y4 ?6 T) M# S2 B
function d (enc) {document.write(codeIt(key,enc));}0 p8 @' j( u+ 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;}
1 u1 k+ |  ]' n4 d</SCRIPT>/ s/ O7 Z6 P2 v" C
<SCRIPT LANGUAGE="javascript">
0 y8 w0 B6 B# s# g1 e+ n  @Decode();6 U& U1 t& f$ }" h- l! W
</SCRIPT>0 y8 _1 i8 a* M0 {6 O. r! V
</BODY>
9 N2 r! ~9 j3 O( b) ~+ }</HTML>6 @: _2 s$ S0 j7 z  W

: O9 t" ^' L6 N+ @! v. a  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
$ Y# r8 V& b( m' r  w7 l$ j  q" ]" E- f/ k2 V0 L
<HTML>8 q! f3 Y$ `7 v  \, L9 {1 U' S
<BODY>5 V' }9 I6 o" W
<SCRIPT LANGUAGE="javascript">
/ K" Z" I. Z2 Y5 nfunction Decode() {
0 S+ Q5 O- Z, K" B, Dd("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 q$ _% W: A5 F# r7 j6 L
</SCRIPT>
- _7 E. K& `) N$ Y$ y0 Q& W<SCRIPT LANGUAGE="javascript">: m4 E1 ]0 u" |1 g8 H% G9 Z
function d (enc) {alert(codeIt(key,enc));}; _9 c+ [7 U. G( v" _$ n
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;}! p6 H% M: V, f8 S) t
</SCRIPT>- p0 p8 H' @4 N) t) i
<SCRIPT LANGUAGE="javascript">
# v8 [! Y7 I+ @2 Q. Y4 [& p+ ~Decode();
! s, L* J1 i& G6 j: A* \1 A</SCRIPT>! M8 ~5 i# ]/ R9 n( M- s% |
</BODY>
+ _/ E$ v: z0 G! e" s: a</HTML>; ^' {) t% {: M, k
0 N) h. ~5 u1 G
  哈哈!!:=)是不是很精彩!!

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