标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
' @7 X/ q3 J6 }/ {2 J* Z
% A0 D" {4 j/ K* e1 e0 `
; x1 t/ e7 N2 V& u1 n" a
方法一:
$ B M( H0 l' K J- V
8 _, k5 V) h% H' d$ m
$ `3 H' b2 k1 f2 S
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
) D7 m7 X6 o8 H! \: V% [- v u. q
# V" v1 [6 y* O6 O5 i
<HTML>
3 W S% ?6 }3 ]& y1 k1 H$ W2 S- F
<SCRIPT LANGUAGE="javascript">
0 @) c% m1 }! ~4 X" ]
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"
( N7 B) ^7 h" r" \
var NewWords;
$ m% z* ]5 \# w4 i! g8 ~6 h3 T' S
NewWords = unescape(Words);
3 p2 i( T2 S6 W$ h
document.write(NewWords)
4 i3 Y1 }: ~ o" `, @4 Z; S+ W
</SCRIPT>
/ m7 I6 z8 J. P, {7 Q
<BODY>
3 |# J* E* ~* u# {* J: r. J
</BODY>
+ {3 I7 y( `3 ~
</HTML>
2 ]. @' y: X2 Q$ K6 M
5 y1 O, h( n" e8 f7 L( F
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
5 t2 T' \/ q# P* [
3 t, e3 l e' v2 ^( f& ~, h7 O- h
<HTML><SCRIPT LANGUAGE="javascript">
3 b7 P. x# ?+ ~& W) p
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"
4 X' s, I7 T. u) h. q5 K
var NewWords;
0 F6 `* P% V1 P" `0 ~- |
NewWords = unescape(Words);
& F) P9 v; V7 A9 f. n
NewWords=NewWords.toString();
9 e; _& J) ]) {0 B& A& z
function password(){
9 t8 O) O5 L1 f/ G1 F/ d% n1 c7 T
document.pw.txtpw.value=NewWords;
9 S- u) z3 H9 G
}
) e& l- D7 H3 ?9 E8 e
</SCRIPT>
* L! Q8 _/ ^; [5 L0 {' [
<BODY>
g2 b- g4 B4 V1 ~! I, _# V
<form name=pw>
- l& t0 M9 z" a$ P8 S b
<input type=button onclick="password()" value="解密">
( z( Q6 Z# w" j' }) V+ M; a ~" E+ X; m
<br>
+ B( `# ~, ^" Z( l. a
<textarea name="txtpw" cols="100" rows="100"></textarea>
6 f: N0 _1 x- [' x6 J: z/ X8 @
</form>
; o: s3 s) @8 I! [, X1 Q
</BODY>
& b1 `. s& ?" V, P# u' y! o% d6 B4 G
</HTML>
! [" s* G3 S/ L8 M# l) z* L
5 ^2 U1 V! K0 `+ i) @5 A) u( a
方法二:
# b B( N5 M+ m/ e
, Z" l) i, H0 o0 D% U% W- Z1 K2 W# L
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
6 P& L& C# O' Q g7 Q$ z9 J. R
& t, C; G& {+ a! F8 u
<html><head><script>
# T0 c$ H0 @) O) p y4 v/ Q/ e) H
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 |% A0 N9 e" s
var sJsCmds ="" +
9 q6 g- e9 l4 `* \7 ^9 H. ^
"?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" +
$ O* @( |- j; L' L; |) \
"";
' [- b! Y( }- V9 Z' i- Y
var s= Carbosoft( sJsCmds);
7 U/ C$ w* n2 N- G
document.write (s);
/ m; o3 W; u& L; v
</script>
) {: b( \/ P) r* k5 ^' a, u+ ]7 H
</head><body></body></html>
+ |; j w4 p6 E0 n' l
4 N. y( u0 O' x3 F0 G1 p5 ]* L K: i
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
/ @' z$ _) }+ z- h$ d* ?
1 f l, D( D* }4 O8 d6 w
<script>
8 i* a n/ [8 Z
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 ); }
. ]5 ]! {+ q" M2 F* ^$ l
var sJsCmds ="" +
% ?' A. f! n( }3 ]5 {4 Y, M H) H
"?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" +
, a: }, z% X0 f& @- a4 `
"";
. p1 B8 r, U# {; N) j
var s= Carbosoft( sJsCmds);
0 p8 P6 h: O- b" y
</script>
! ]1 W8 @8 Y0 V
<form name=qq>
/ a+ b, Q' X+ G4 r% b' o; i9 U
<textarea name=ww cols=100 rows=10></textarea>
6 b4 p1 V/ O- S7 o$ j
<input onclick='ww.value=s' type=button value="解密">
. n- o* Z1 U% ]& A8 x3 e% i
</form>
3 S' Z9 ~+ A+ q1 d5 J5 v
- ^$ |7 p# H& v' z. X
0 V0 B, u: n. j& ^* y
方法三:
( l4 j! u, J5 R( q& O& S \; j
8 z% k# e( j+ a( e, o" k0 `
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
$ n8 | P. i" @9 r3 Q( P t
6 q% w3 U0 L- C2 K3 B8 B5 d
<HTML>
; F" K& ^% Q! n: X" `- v$ S
<BODY>
' [# ?7 `, y! l: N/ I5 c6 y
<SCRIPT LANGUAGE="javascript">
' M S" p+ u4 v, u
function Decode() {
9 U: r; w- n% t* K6 i `
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: `% l' A r& W
</SCRIPT>
D9 W( b3 H3 z
<SCRIPT LANGUAGE="javascript">
4 q i# `0 R9 s9 a
function d (enc) {document.write(codeIt(key,enc));}
4 C9 V" a3 Z2 }( J0 |
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;}
5 N* a A& k; m( _. ?
</SCRIPT>
* I+ W# L( L8 m/ I& \
<SCRIPT LANGUAGE="javascript">
! A4 o; {/ L# H" f. R7 d
Decode();
( a, _; ? G1 k" }6 A6 @: N+ F
</SCRIPT>
3 Q. W9 s6 x& i9 ] g
</BODY>
) X4 s2 k1 N% W' X0 _, E1 D5 i4 A
</HTML>
! w/ ^1 K+ a- ]" \/ B: Q
) T5 C; B+ q: D& Y
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
% \' @6 `, n. e+ J3 ? r, d# l8 W
2 V( J; f* m. W& x3 D( y
<HTML>
7 i9 }- _. s6 P5 {8 L+ O' o9 o
<BODY>
' {, Y7 x, u2 Y2 x2 H
<SCRIPT LANGUAGE="javascript">
7 X U0 |+ w, ]/ u% m! n
function Decode() {
; X: S$ m0 G8 i$ K& H
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;}
l& Z/ o! J0 B) V9 u2 H' n w
</SCRIPT>
) Q0 q R* h: O4 ]9 f: @/ V* k
<SCRIPT LANGUAGE="javascript">
9 j" n, ]$ _0 y! i. G
function d (enc) {alert(codeIt(key,enc));}
! T: I# F. [- y7 A9 g. 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;}
: [ `7 v& O7 p H% _7 ~
</SCRIPT>
) o% g; I+ x; D3 N+ x; [% f1 K9 L' |
<SCRIPT LANGUAGE="javascript">
* o' f; @$ l# |6 A+ O
Decode();
5 [3 U7 U6 v9 u; R: I- O
</SCRIPT>
* R2 f% ^) [9 i) V1 C" O3 i
</BODY>
. W, Y( y1 z0 z$ j( g) m2 i
</HTML>
1 R! R9 R& `: F G6 h
# @0 ]* d2 [0 ~7 N& _
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2