返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!: W8 o+ ?# x1 s2 N$ d

4 X$ m! C, p) I3 o8 K" _  ?1 C1 e
方法一:- ?6 G  o, P, K2 T* @, W, S7 v4 J

% x8 [" Z8 ~3 d+ S
5 t9 c+ `0 j6 @& U9 F( {7 W% j  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
( ?: R* i7 h3 u; o0 x! a$ q
! |. |4 _$ ~$ P* v<HTML># w7 [5 [. }+ t+ l* S
<SCRIPT LANGUAGE="javascript">+ w$ c& [+ g# Y6 H. Q
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"7 a4 L3 B2 }  c$ f
var NewWords;
0 z' m: h# [( v1 r# HNewWords = unescape(Words);
. @1 R3 o  t) P+ ^$ _# U1 ndocument.write(NewWords)( E$ z/ I0 z) c, L6 h
</SCRIPT>! O. @! r) L) g, W" ]
<BODY>' E5 r" X& ]! G, Z3 @$ p
</BODY>
# f7 ~# H0 B( p</HTML>
( o/ c$ o; [: Y. L; G* K- [
: u) L& s, ^9 o  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
. ?( a1 s+ A# @3 t& X: X& F* N2 R6 M9 d/ j! y8 i
<HTML><SCRIPT LANGUAGE="javascript">* i, h' i6 E7 i( ]
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"
& `2 P5 m, b0 ^* b2 ^7 [var NewWords;
7 ]! y) |2 Y, {4 j% n9 qNewWords = unescape(Words);
$ ~4 {  r/ D8 O' r: n9 s2 R/ ENewWords=NewWords.toString();
: n0 v( D/ Q: s% rfunction password(){2 `: C/ }$ W. B2 g' \2 A* t2 W
document.pw.txtpw.value=NewWords;2 n& u# O0 Z3 `1 T  k+ N2 v
}, x1 D8 e' f- Q6 \- ^3 I9 o; K
</SCRIPT>
+ y. \. Y8 b; Z<BODY>/ t$ r; e' Y" B1 v# O7 v9 F# H: l
<form name=pw>6 e/ c7 }+ h  c: ]
<input type=button onclick="password()" value="解密">
6 k7 i& K% x+ i& c  y<br>
1 w0 O9 Q/ w& ~" R<textarea name="txtpw" cols="100" rows="100"></textarea>  V# [; N1 C9 s  `# Q
</form>3 I* E( x# n, y5 i4 q
</BODY>
8 c3 n! @0 z/ B2 B1 Z2 c</HTML>
% K9 V2 \6 |+ X* e) f' h
& N7 n9 y& C# q方法二:) W, o2 Q" G) {+ C9 t

; k7 T2 g1 R, F  v" g1 V  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:1 M, y) B* W. }2 i
/ T# ~9 w) G' I7 ?' [! e) `
<html><head><script>5 c# ^$ d# S  P6 }* n
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 ); }( o: h# {( Z8 l* _# a
var sJsCmds ="" +5 r. Q# G; i( u+ K6 J
"?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" +
: h4 @/ L, E/ f0 g, d  ?- I! D, j"";
+ I2 k2 t! w1 n8 c$ Mvar s= Carbosoft( sJsCmds);& \+ B) P( c6 m  c. U+ e
document.write (s);
0 g6 D* Q4 S' l9 V* |* I</script>
" m, p* {  `4 a</head><body></body></html>
8 H- _/ Y5 l9 e* j
3 t9 g1 B# q+ n' l' s2 I  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
7 o) W9 K: }5 [) [! s5 ~
9 G. D) ^& K  A  s* h2 l% I<script>
! t3 `2 A* S0 F( 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 ); }- w+ ?% e; n( s
var sJsCmds ="" +/ g; h9 e& f% a5 T4 J4 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" +
" C5 I6 Z6 g  M; N4 m: Q& N"";9 J3 N6 e1 o3 k8 X+ s! s+ h( N
var s= Carbosoft( sJsCmds);9 y# h8 O/ H# ~9 ?  C1 r
</script>
) Q# w1 e; l0 q1 T. z<form name=qq># _; s) C# o, Z  P8 c0 l
<textarea name=ww cols=100 rows=10></textarea>
0 M+ r" l) p. M( k. r<input onclick='ww.value=s' type=button value="解密">
4 @5 y3 C9 l7 v! ~# X: U" l</form>0 k2 T( j) L. {  m

/ U& s' A' w7 @/ [4 W0 q+ u8 f2 R& d) \, g5 e* [$ B. o( v
方法三:
* J: Q& [8 C7 K% o" C! |
  }" x0 h2 N0 T  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:  Q% N/ T0 }- V$ i& z. r! r
' E" x4 V9 E7 m5 A3 w: W5 n
<HTML>
& B! U( ~3 I; @<BODY>
9 |. M) I1 I. \' C6 A9 y<SCRIPT LANGUAGE="javascript">4 [3 c2 c8 O( }3 F, b9 ~/ k
function Decode() {1 {( D: e$ @4 s1 ~, B7 D
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;}/ n1 J+ V& C  K* S. |  I7 U
</SCRIPT>
( M3 ~# G' p# U( F1 j<SCRIPT LANGUAGE="javascript">9 v$ d4 E8 u8 x5 |' O
function d (enc) {document.write(codeIt(key,enc));}# z* ]- n/ x* U( M
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;}! I& R% o1 X. M2 s+ X  x8 j
</SCRIPT>
" k; p: a: A5 `& p  S<SCRIPT LANGUAGE="javascript">% h/ V; L* g1 `) Y, D' }, l0 q
Decode();
: `9 v( Z8 g+ R: n0 i</SCRIPT>& L. C7 u7 r9 h; h' N* r
</BODY>/ V* ?0 H- G- c  h9 K( W2 f
</HTML>
5 t/ U- h& E) Q! f) Y% F/ _8 G: ]' i3 a% D$ g8 O# z) {" w& Y
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:2 }6 i' h3 n1 N7 z5 w
& E! q. I& f8 ?, \& _
<HTML>% D& M, a- W# v
<BODY>
, W0 o$ X1 f1 l2 [<SCRIPT LANGUAGE="javascript">0 a  }9 s' R' ^( Y+ \' _3 I
function Decode() {
0 H* M' I' h. u3 Q: y8 {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;}( u% W7 K* e, X8 Q
</SCRIPT>
3 H. V9 }: z6 y. g% g" M<SCRIPT LANGUAGE="javascript">
. O* M# N  q" i9 j9 ]$ {$ Efunction d (enc) {alert(codeIt(key,enc));}
- ^/ N2 v1 q: U$ ]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;}, A3 a3 P+ ]; ~2 l5 h( m
</SCRIPT>2 ?6 S% U& k  b" c; _
<SCRIPT LANGUAGE="javascript">
( ]7 E+ a4 Z9 l# R  S9 V: Z5 ODecode();
% i6 \2 U) u; _5 W0 S( j1 ?$ q; d</SCRIPT>  b6 N" ^, d$ [
</BODY>* i4 J) c. \$ k; u7 |& M
</HTML>* ?! D% a6 z5 e  S4 T
6 }9 Z; n% G" E0 ]$ r% [
  哈哈!!:=)是不是很精彩!!

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