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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
7 k- B, C) J8 C+ f/ \
6 x0 Q1 R2 ]& ?. ?
& U& {+ N3 i3 z0 H' [, K& r方法一:* f* p5 \, k% L' Q) @7 d) b: n

% j; v# [" c! f6 ~2 z6 k
0 I7 f# }4 h5 r" a  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:' ]) I/ p6 R: b

2 t9 j8 f5 i2 G! E<HTML>- @* r, v! H& H1 ]
<SCRIPT LANGUAGE="javascript">' A* d" L6 k$ [5 s# m" C& Y8 n
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 t" _* T) K. u
var NewWords;$ X8 V  c; t, k- z, V
NewWords = unescape(Words);8 ~% @2 c# W8 I  \, Y- f, H. h# a
document.write(NewWords); h7 m, l  V9 o
</SCRIPT>
& B# P+ u  m- S9 h<BODY>. U2 Y9 F, m0 [2 i  J6 v
</BODY>
7 e; h/ b& L" S: R</HTML>) a4 f; y1 i: l8 ^8 M, D! M8 \0 C+ F
6 ~, n' s% \$ y% U
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:( N3 U" N% R, }" a- y

# k' f% c1 A7 u7 b+ u3 I4 i<HTML><SCRIPT LANGUAGE="javascript">6 _* u! m. t3 \& ?2 ~
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"
! e: C8 X8 ~. u* w0 Z& ]$ Ivar NewWords;
$ A# t+ }9 z  {0 E0 m/ SNewWords = unescape(Words);
* h0 a* H) _. q1 e% m8 I: \- [5 [8 `NewWords=NewWords.toString();+ P$ T1 M# r- r9 _" y: F
function password(){+ t: M; P' P* {
document.pw.txtpw.value=NewWords;$ N) S3 d; V: l# C; ^1 ?
}4 @( T, Z4 b% S& n
</SCRIPT>
) c% f% c; j* L* n3 T) X<BODY>
  M/ u/ Z& Z4 B1 H8 \7 k( m3 m<form name=pw>
* G+ ]; J% m* f1 ?3 h% O% X<input type=button onclick="password()" value="解密">( G9 ]* d1 b# ~1 N3 _6 G
<br>
' l: c4 T6 K6 K* L2 u  x<textarea name="txtpw" cols="100" rows="100"></textarea>
" @/ T+ W% f7 J</form>
7 C1 u0 N: S/ P</BODY>7 C" b/ a- U4 ]4 N! U
</HTML>
. t- `2 q& I& V3 F' N  k) a; R& \. f, Q* E
方法二:- K1 X6 ]$ a1 h0 B7 p; {- x
+ Z" R, G+ P6 s5 M/ N- f; l
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:. A# f9 \3 A+ w; M1 o. Z: J
3 r9 m! H' d. s8 ?/ ^7 Z
<html><head><script>+ Y# y' n: u( z3 Y# n! T$ C" B
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 ); }
  L$ q5 ^$ ~% \: r# |! s) p& wvar sJsCmds ="" +* u2 X' T2 ]  |% ]0 h! Y( ~" S; 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" +9 p+ u  T4 u6 ~+ E# z; r
"";
; Q" w! e9 J% u* b% k- svar s= Carbosoft( sJsCmds);
3 _' p' K" k) n. |" Z; D! Fdocument.write (s);
" V3 Z/ K  w1 p. m. _</script>
& Z7 P0 G" v/ X0 F' O</head><body></body></html>" Z# B$ k- e/ x6 R; Q3 k' U

. F% @% ?2 r; l7 b  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
6 f+ p5 I- i3 b* ?
$ p; ~8 K- Z. [' y2 X  b<script>! `- m1 c* U# c) 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 ); }0 y! ~* j' V% C% y( `! t9 k
var sJsCmds ="" +% t% b7 L- x# J; ^6 `0 U1 s+ R. t! v- G
"?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" +( i9 {+ R( w/ ~$ ^( |3 F3 m
"";
6 |6 q# \; T6 ]5 Z4 q6 Svar s= Carbosoft( sJsCmds);
4 q; p' c  F4 h7 ^4 U& C</script>
, S# z( y, R6 V, Z  X# a) Z<form name=qq>4 b1 \2 E7 ]4 |5 {% `
<textarea name=ww cols=100 rows=10></textarea>
0 T4 g6 z9 i" ~" C9 ]<input onclick='ww.value=s' type=button value="解密">
" h. g5 X0 v% h# ~& T8 }</form>
0 R* }, Z/ A4 q! n& I: Y6 y$ E5 T/ c/ j: z1 p7 I
5 E) X% Q5 Y5 H, o: c& ]
方法三:
; `. L8 _: e8 \* R0 q* J8 y& ?
7 k0 J% i$ ^' p: n  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:) R, {7 B, y, m9 \0 M
( a; \1 p( a! i3 S" ^6 F8 t
<HTML>4 F1 \: C) W" o( I0 d5 L* r. [
<BODY>6 u3 j1 y! X3 K! a0 j
<SCRIPT LANGUAGE="javascript">
: E5 ^% B& a# {7 D. f2 ~0 ofunction Decode() {8 e, d' H0 ^5 [
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;}7 X7 p5 B, T& ^% @4 p+ `
</SCRIPT>  g: p" z5 A8 C" ~
<SCRIPT LANGUAGE="javascript">& ]! I1 d# V# G: ?. L+ U5 Q
function d (enc) {document.write(codeIt(key,enc));}
4 c5 k+ X4 O+ A6 D% Bvar 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;}4 b% v7 j3 @$ @! F
</SCRIPT>
" g1 x* _" \. b  `<SCRIPT LANGUAGE="javascript">  G& T% j/ t- @
Decode();
$ n/ ~6 R# ^* d" s4 ?</SCRIPT>9 s+ o, ]# K' d
</BODY>
+ ]! P; L$ u# X: H</HTML>& d. s5 I3 W# o

- i7 ?3 Q" u& |4 Y( N- e0 s3 Q  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:' O( F; d$ G; p/ C3 X3 ]. i
8 C! j, n# r2 c: L$ q2 g. U
<HTML>, q# }) o4 D( D% f. j8 r
<BODY>
5 g# e! o% n2 j<SCRIPT LANGUAGE="javascript">9 r& Q! C+ r8 M, _0 A+ B" T
function Decode() {/ e# v3 f, `5 |
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;}( C$ x& U! n5 b1 {8 J& p) p% D
</SCRIPT># c' G: p' `0 F
<SCRIPT LANGUAGE="javascript">
- b9 t; ?& F& jfunction d (enc) {alert(codeIt(key,enc));}
4 C% J5 C6 {2 a0 xvar 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;}
( t$ }4 ^/ N+ k; d- |</SCRIPT>' A0 O  Z  F" Q8 v! x
<SCRIPT LANGUAGE="javascript">  L; S  h: _% j& R$ F' Y: h
Decode();& i4 r% X8 @; h# v3 y) e+ ]1 h  g
</SCRIPT>3 ^, r  V( O& m7 u$ Q5 X
</BODY>0 |* T1 l5 E, j5 g' G
</HTML>
( B; ^! ], x# D' _' r
7 z( e% V( R% E2 }( G  哈哈!!:=)是不是很精彩!!

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