返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!' C1 J3 U& P' B" z: ^5 S/ o7 \

2 r& p3 h+ t; f3 U! U5 d9 j0 z7 l  C& x5 }  i
方法一:7 s) c+ o8 \: D) e' ?# P
# u) M/ b7 C4 }% b' C3 c

! ^& w; }: C0 x% E) N" u  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
1 V& q9 i! X! J! z  x7 x$ `% Y. _
<HTML>
) P# X. U; ~9 h# ?) e7 C/ X# @<SCRIPT LANGUAGE="javascript">
8 T: N6 s0 d7 @% e! N+ O8 Ovar 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"
3 }) d* X) _) e  tvar NewWords;
3 ]( H# y9 i/ D6 o) T8 ]4 A9 TNewWords = unescape(Words);
- [" ?6 E- R0 i9 N  n0 Zdocument.write(NewWords)2 u& f/ O6 w5 I2 b0 j4 d
</SCRIPT>
' g, S* Z: u% y% |6 \* w' M<BODY>, I+ i2 o& K5 J, o
</BODY>
# a( Z" [! }4 _( |6 n4 Y</HTML>
; X! w4 r3 @" a! u; V
+ v5 t, j. k9 D$ f: {7 b$ m- y  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
9 D) X$ L  @; K. {6 p% \- N$ F0 M9 S7 O! W0 @  w* n
<HTML><SCRIPT LANGUAGE="javascript">
6 S" y: I1 B0 G/ Qvar 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"
; Q$ l& @/ W9 D( i- Q0 Jvar NewWords;/ y+ l1 _0 r! l4 A
NewWords = unescape(Words);
( f3 a  V. F2 k# @- KNewWords=NewWords.toString();% |4 d# z$ p3 j$ Y, n  w7 S- ^
function password(){
5 m( L9 }6 L6 r4 d6 |5 Ddocument.pw.txtpw.value=NewWords;
0 K* I$ ]- U$ z}/ _$ P7 [2 `" A" F3 y) B# B( v
</SCRIPT>* T& G2 l1 J, l7 t- v3 T# g1 z" }
<BODY>
# J" h- y. ^3 j7 G# |. U2 Z  X2 b; [<form name=pw>
" y& P' r3 w' ]2 i<input type=button onclick="password()" value="解密">2 t* f+ C" z+ L. Z3 O) _% S, a0 c
<br>- {0 x3 i' ~3 V5 x
<textarea name="txtpw" cols="100" rows="100"></textarea>
( v. X  g( U3 U: ~& e: L. Z5 s</form>% u4 n, n# O  u/ k/ n
</BODY>
, j  n6 Y. ]% a: X3 A</HTML>  O8 J7 v1 `+ p8 Y" Q3 j. @
2 _3 V( w/ y' a
方法二:+ Z" r* w! ]1 A: F

9 c$ K1 l; \$ P- |+ Z  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
! Y. m- w2 r) N5 S- W  z" V1 l7 j0 P2 _/ {% t0 |! u
<html><head><script>
2 g  ^/ D% Z" j2 `% E- pfunction 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 ); }
- n. |: V8 C+ j, K' Svar sJsCmds ="" +
( Y1 h  l& j& C) B: y6 ~/ s"?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" +
( N$ ^8 ^: a8 U; }0 X; x"";' ]* R. q' @' [4 O
var s= Carbosoft( sJsCmds);. M3 e. f- d# p" _/ m3 j% S/ ]
document.write (s);
  n. [  A) G5 m+ S/ b</script>
; a1 i  j) V( F6 a/ f</head><body></body></html>  x9 n7 D- h, A" \  A2 Z+ O- Z9 o

) d5 i! E8 G! z' J; t6 g  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
4 c; S% H( g! T) V. m5 y; g  n# z0 h6 G' c1 n& F7 t3 B
<script>2 {  c8 r- ^1 m$ E' Z" a
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 ); }
3 W( G! P# P- vvar sJsCmds ="" +! k/ s( `3 C  P$ J( `& 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" +
1 W. z. _; J4 e! K3 y, y: k  U"";
( e, n8 P+ L$ J  Fvar s= Carbosoft( sJsCmds);7 e- a; g0 s6 ]7 D3 \4 k. P
</script>9 k( @- x- l6 g$ ^5 B
<form name=qq>
, U% ^% ~/ t: D* M6 \" j/ c4 T2 M! w<textarea name=ww cols=100 rows=10></textarea>
& U0 Y2 q7 n3 h# |. r# A- l' G<input onclick='ww.value=s' type=button value="解密">
! B$ E, q4 v6 c, w; |+ G6 w, l4 P</form>
$ q5 Q7 i* e- M4 X6 H& e' b
3 B6 K8 J1 H7 P! T7 R- z" g" @' @- u  x9 w
方法三:! ?! h" t$ x* q) `3 R& n

& G, `# Q! b( I! B% i& ~+ G2 h1 \  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
1 N" B! \; ^& K, ~- m  B0 O9 ^
, |4 W6 I/ u3 L<HTML># X7 I  v8 p$ g
<BODY>
# X0 ]" o. d! Z' ^7 ?$ Q/ C<SCRIPT LANGUAGE="javascript">
# e* \/ ~# k3 pfunction Decode() {
6 {* n: @& k+ M8 x& z& I" fd("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;}
6 D" p! y2 B  \$ U</SCRIPT>9 ^' n$ s& R( P# g7 t5 r
<SCRIPT LANGUAGE="javascript">
3 v- G% r/ {$ e* b, b( q# Zfunction d (enc) {document.write(codeIt(key,enc));}7 k" T; r6 _4 m& g9 s/ ]8 }
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;}
4 d5 [% S$ y" A( ^: ?</SCRIPT>
* |4 u4 m! j( K2 j& g8 I<SCRIPT LANGUAGE="javascript">
3 f3 y, Q7 M% ^0 x. ^2 FDecode();
6 H# G( ^0 R; ~</SCRIPT>. A4 v6 W9 A) U# C. H1 p5 S
</BODY>6 [: @+ O5 q- D- j7 A
</HTML>+ w" B4 `; E5 f, [; B* _

. N9 x, X* d/ g  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:. x& k: W% y/ W% M. _9 Y
6 V7 T  q+ c* f: s$ ]3 [
<HTML>
; X' o6 f9 x" r6 O! P<BODY>
1 y- T) ~) _3 V$ b. t2 R6 q<SCRIPT LANGUAGE="javascript">
, Y! L9 K. a( a9 g$ P2 q; ifunction Decode() {/ S/ ~+ v1 ]# H) u% |: H$ R" n5 r
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;}9 i& n; v/ o* _( T# q
</SCRIPT>
) y% w) k8 a8 D5 d<SCRIPT LANGUAGE="javascript">9 h/ U3 z! _. G2 d
function d (enc) {alert(codeIt(key,enc));}
4 I7 {, w4 n' T3 t$ ^" Gvar 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;}- j7 v6 f% S0 X! S3 a0 ]% O* M
</SCRIPT>
  G9 R5 g+ \5 J8 p6 P$ N: y% n<SCRIPT LANGUAGE="javascript">3 n8 U6 t" W/ L2 c, r* t$ Z$ J
Decode();8 b# }. I! S) Z  y
</SCRIPT>0 k. d' i  k9 a# }: X, A0 M
</BODY>0 r* _9 j7 r' x" h/ o) y
</HTML>
3 U4 d/ L- S/ x; E( ~1 r: R* q, z% U1 n- S5 S& @
  哈哈!!:=)是不是很精彩!!

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