标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
/ `8 C# O# J. ^9 ]
& V* e0 F2 O4 q$ Y3 H
' e! ?6 {9 @9 u; }3 x7 T& M
方法一:
' b* H# P9 s! k
4 `+ f4 p, V% t A5 ?; n
- V( i$ S6 V* q( L. _
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
. |6 S9 n: v1 N8 Y* L K
/ @; {. g, G+ Z4 U) N/ G# m( V
<HTML>
# e+ M5 e4 {3 C# c. f8 P
<SCRIPT LANGUAGE="javascript">
6 n1 I# {( F( E/ w
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"
8 F4 L' b6 ^( c; @: p, S3 e Y
var NewWords;
9 I, O6 D- d6 X9 o2 _$ h* x
NewWords = unescape(Words);
9 p. Y, K# T: p" Z
document.write(NewWords)
* q. b! j& V6 W
</SCRIPT>
6 N, k- h$ R3 V$ Y! f
<BODY>
! }, s4 Y8 F0 V1 i9 _* Q9 _1 d
</BODY>
, M, u' V3 a! V0 a3 }& j( A1 E
</HTML>
6 ^3 u% k! u ?5 N5 r) U
7 [: n2 w' N$ \. c0 d
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
8 w' F* d3 q U& J3 h8 Z0 z
x2 ?+ O/ l/ d e9 J2 _2 \ n' R6 S
<HTML><SCRIPT LANGUAGE="javascript">
+ `: @) N; a+ E% _: o
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"
; [# C% \4 d: r, \1 W: D
var NewWords;
$ i! G L2 P( m0 A
NewWords = unescape(Words);
8 _, R7 F" L7 g% U- ]9 `, t
NewWords=NewWords.toString();
. Z% b- g2 u$ K& S$ b
function password(){
/ W `) K( I5 P! q$ a
document.pw.txtpw.value=NewWords;
Q, Y: j/ i+ d; l9 X1 l
}
3 b5 c$ m- u" Z) t6 k* j
</SCRIPT>
9 R9 q [9 D8 t' a! u
<BODY>
$ E' J5 o& O1 A! o* V
<form name=pw>
3 q! P% s1 H) H$ @& ?$ R
<input type=button onclick="password()" value="解密">
: H+ \1 X' S. l" @5 }6 {! @: C
<br>
& l' C5 P" X+ c. _
<textarea name="txtpw" cols="100" rows="100"></textarea>
( Y0 V2 K; @7 Q, w$ J
</form>
: u( x& [9 |; @
</BODY>
' m3 p1 u, Z) e$ }$ b3 a
</HTML>
8 c4 U) i0 c% k
" q, s4 x5 L5 ~" ^# ?8 M
方法二:
8 F* d* f! {' U3 E
1 u$ ~6 [ b. Y5 Q. ^9 `; W
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
, z& S/ z) v8 W. i8 A4 p6 z/ |4 ~
* @ u; I( r& ^& |8 g
<html><head><script>
8 I" w C/ l1 K3 t& ^/ X" Q/ s
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 ); }
/ U3 T2 \4 h' \4 B K" L' F. |$ O
var sJsCmds ="" +
4 Z- T& ~4 n. u/ }; c8 F x! I0 R" u
"?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" +
# w& P" P6 w$ _% |
"";
8 E% m5 J' k: G" b! x
var s= Carbosoft( sJsCmds);
/ P8 }8 p; C0 M8 w6 G1 m" W
document.write (s);
; r$ |0 S, ?; i: K; o" q2 }
</script>
' R2 r) e) Q1 {) R8 N
</head><body></body></html>
$ D5 ^3 Q- I! d2 J0 K
0 B! }2 e% r6 f
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
$ p( }# Z0 r/ Z3 ], L( [1 L. p
7 U6 z! i. c4 b7 W3 C
<script>
* Z9 _* u+ e# n. j( C" X5 ]: y2 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 ); }
1 c: e; l: u8 M2 B9 j4 |
var sJsCmds ="" +
" \+ l( y4 a/ ~1 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" +
3 O, m& ~' U" H+ }9 a1 V. K
"";
: O; I6 C1 ?0 ^/ L
var s= Carbosoft( sJsCmds);
. Y+ Z8 }' |* [
</script>
% b+ @6 V8 d- V0 i5 K k
<form name=qq>
8 M& ~5 R- W; [% j. [8 L
<textarea name=ww cols=100 rows=10></textarea>
/ K; a! e0 A4 |: G' s) ~
<input onclick='ww.value=s' type=button value="解密">
" H6 j2 b9 a) q" I! x! N/ \
</form>
2 u$ m) j, c; f% H( |: R. g
% @8 E/ S( ?$ v% E' G/ T# }
" P2 A0 y5 f2 m' D- D
方法三:
4 v3 a: Y% H) f. S, P" Y0 [
% [4 {4 n2 Q0 j% M9 H3 [9 V7 N
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
# n) j$ y' \ z. F7 Q2 J, ]
8 c' f; E4 e: v+ ~) y
<HTML>
( T) x" e& i8 O; n
<BODY>
& O* j9 \1 k1 u# | L7 s- T
<SCRIPT LANGUAGE="javascript">
; D, w' [1 z3 X. D2 A/ ]
function Decode() {
8 C0 E' _* ~9 I) |1 }# n* F- B; _7 k
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;}
' M) u) }7 ~' `8 X* U
</SCRIPT>
8 I* T; S; R$ `: V
<SCRIPT LANGUAGE="javascript">
2 M7 Y H) d' D1 c7 Z
function d (enc) {document.write(codeIt(key,enc));}
* E$ }6 V. n5 g' P
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;}
6 B0 j& x. B, A! F) k% s5 M3 T( l
</SCRIPT>
3 P& x/ D: w/ s: i! a. p
<SCRIPT LANGUAGE="javascript">
+ e) s o1 r' q, X
Decode();
# Q( Z! W+ G; D% p" ?0 I6 s
</SCRIPT>
& i4 b G r* x# l- n
</BODY>
1 Q8 M5 C R0 ^
</HTML>
/ R9 A6 | z/ B. [" P3 V8 y
& W* L( P+ e( z! c
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
& p. q# }) l9 z5 V$ E8 T
1 H# G' _) R% x+ v% p" X
<HTML>
8 L4 q: C" A0 D2 K( R
<BODY>
) }' S& D( W8 ?! f* ^" D |
<SCRIPT LANGUAGE="javascript">
. W2 Z5 Y7 h, h8 u$ D- V; N
function Decode() {
: ?. R/ w* G8 {; S+ y( K/ w
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/ o' c8 t9 x6 X/ ]# G
</SCRIPT>
( @9 n3 k3 o- b) m( U1 q: S& u' ~
<SCRIPT LANGUAGE="javascript">
! |3 I: f5 g, k) T7 h* ?! w9 o
function d (enc) {alert(codeIt(key,enc));}
/ \+ C' h6 Q- }0 v) O9 M( R
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;}
: z! y/ ?# C* A6 M9 D2 t4 J, e
</SCRIPT>
0 t; V1 u+ ~7 ^; I) q2 f C
<SCRIPT LANGUAGE="javascript">
& |! o5 J8 y6 r; n- ^" E8 d
Decode();
5 T8 D0 p* e6 x* @% E# q
</SCRIPT>
8 R# w* O3 H* L! x6 Z6 g, a
</BODY>
# d% u5 F* z& _( k+ M0 h
</HTML>
) `! l9 k$ j5 {$ e0 A
* x3 r" N _' U" E* C
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2