标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
) L+ Y: E- @. n! G
5 I# J+ P( G( D: ?
. I$ k# W8 W" _+ O, Q0 k" ?
方法一:
' f5 [# S4 ]7 L) `( c6 z' h& g" l
. ~4 J$ M/ y1 y4 d6 G8 Q' V
7 M- f0 \& A. X: G6 V
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
) G7 R4 `- N* z5 x- t) I
: _& ^) P0 E& f. j& D
<HTML>
G) G% r2 O, i. ^. ]
<SCRIPT LANGUAGE="javascript">
: [9 W! C4 P+ Y }1 {# V. T
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"
- M( s9 L0 D/ P! p8 ^
var NewWords;
8 h4 M8 q1 X! z9 q4 t9 m6 F; M
NewWords = unescape(Words);
0 q+ @; u" C3 l5 H* |5 L( ]
document.write(NewWords)
" H* ~* I5 V/ [ ^' q! r7 V. I
</SCRIPT>
% g* m7 ?8 T0 ?1 C
<BODY>
9 c. C1 r% W- O1 {0 A
</BODY>
! m# p" e# [/ ]5 M
</HTML>
+ [: k8 B- q+ r
( S7 g, L- ?5 K. s' w! p A6 w
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
+ W2 g1 M! k6 y1 M" F( A
. i2 b! @ c+ I. Q ]
<HTML><SCRIPT LANGUAGE="javascript">
# h m/ Q2 L7 A3 ^# e0 s5 f
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"
6 D) n; x- B. t1 |! i7 `
var NewWords;
6 @8 z" ?3 b* `# |+ T' f2 c/ q
NewWords = unescape(Words);
" U0 V+ s' L p
NewWords=NewWords.toString();
3 X0 Z: | n% p0 w( A Y; X9 }
function password(){
) u1 g p* V- M2 }, ^
document.pw.txtpw.value=NewWords;
' I6 V0 W8 i6 d+ t: }
}
: q. Z+ @+ M+ D" h+ `# ~0 H7 K
</SCRIPT>
1 {9 H1 m1 {$ c& D: u4 N) g
<BODY>
5 T/ A2 x D) \2 z
<form name=pw>
' e* ~# k; C& {3 v( W
<input type=button onclick="password()" value="解密">
8 [! [3 u: _6 A$ j4 }; ?
<br>
" \1 h3 k' N# i1 K' q7 |) Q
<textarea name="txtpw" cols="100" rows="100"></textarea>
/ o; h+ x: R/ P9 H% @2 z* J
</form>
+ G# `& d+ p2 x
</BODY>
8 I0 y% j2 e1 o8 w- A6 q
</HTML>
, H7 _0 S# a$ I& L1 E7 j1 F
7 N2 ^$ {$ o$ \
方法二:
) o5 r2 ~8 Z& H v$ ?
5 ~; t' x3 f. ~6 E5 o
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
, K( c% q! q2 U( Q/ @
+ m0 b- U) C8 p
<html><head><script>
' E! M C- 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 ); }
, |: e! }1 s, n: j
var sJsCmds ="" +
6 L- E! p5 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" +
3 o9 I# {1 o* b9 ~& n
"";
" y* j1 m3 L" y7 z: z ?- K# [
var s= Carbosoft( sJsCmds);
/ G. Y' e g' H! f7 X! E" ?$ `- R
document.write (s);
: a* Z! B' ~5 ?6 n6 N& P6 F
</script>
% S- {$ R h8 U l& L
</head><body></body></html>
5 i* ]9 P& i+ t, [% P
0 Z4 {5 k9 A H% S4 u
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
, w: o& K b7 V( h7 ` W
& J) D2 f9 \1 ^; a! O, h, ^
<script>
' c) P2 m" X- u; m' {" t* Y3 x
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 ); }
& e9 n$ t+ ~" S9 Y9 i# n$ X
var sJsCmds ="" +
# i6 J o) U5 X! m
"?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+ `. B# a' r! p
"";
# S6 q* v6 a+ }5 {
var s= Carbosoft( sJsCmds);
1 a6 j/ B8 {0 d, \6 x; T( {" n! [/ y
</script>
3 ?; Y6 L( `- a6 x% p
<form name=qq>
& M4 y% x( |2 m& S2 A0 J# f* Y
<textarea name=ww cols=100 rows=10></textarea>
7 A- ]$ _& Q4 B* U( l* N r
<input onclick='ww.value=s' type=button value="解密">
3 L' T) h% B4 u7 E8 d+ Q' g6 O5 n
</form>
* D4 w* ^. Q2 y9 m4 P
. N2 h* q; X# i' P* y0 h* @4 Q0 D3 m
^! h& K% c. J2 p' @# X
方法三:
7 W; |# o t7 u2 G4 e
3 n3 C% J. m6 {( P# a
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
7 y( k8 ]/ q5 Z/ D
/ w; |' ?9 [8 }
<HTML>
9 K0 n2 m& x+ F! ~
<BODY>
1 B! \( @& P$ d# Z
<SCRIPT LANGUAGE="javascript">
# |, |1 y- L2 T% V' M/ k2 ~
function Decode() {
; j* M/ D& H: A% a! W3 I7 ^( j
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 |, ~ g& F0 l( F5 E
</SCRIPT>
- Z, ] ~! Y/ e$ ^
<SCRIPT LANGUAGE="javascript">
4 {4 t$ O) E5 I# A5 B) G; g
function d (enc) {document.write(codeIt(key,enc));}
' u0 I, i5 a$ x4 z( ]
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;}
' L$ [4 ~ A0 ]& i2 d2 E
</SCRIPT>
& A5 o* k" O' J& q# l5 B+ \
<SCRIPT LANGUAGE="javascript">
1 Y- b$ \; Z9 F$ M
Decode();
& E$ K' @9 a* y- _6 G/ N* t
</SCRIPT>
) y i9 l4 [# \1 c9 ]- I; m
</BODY>
# d9 g0 d$ f# Z% b
</HTML>
' I) C" V" _( e o/ h
& d# K! w5 F6 p5 t3 M4 U
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
& x7 @' W8 m1 c% _8 E7 N; x/ J& f
C; m/ d# I! J9 G
<HTML>
# d0 t; A* \- M% C+ c l; H: C
<BODY>
6 Z ^$ \& }; Q3 Y# ]
<SCRIPT LANGUAGE="javascript">
, J3 E- _# \; p/ g d W+ e7 h: }
function Decode() {
% f7 P& c" h. N# j* m( s
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;}
! Y ~: o+ `6 f7 j
</SCRIPT>
' x0 ^) }! ] V0 ]- f* j* f
<SCRIPT LANGUAGE="javascript">
7 F2 p7 c7 w! r9 \$ ]. X6 g
function d (enc) {alert(codeIt(key,enc));}
+ M" T; f9 w$ T S. a0 Z: |
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;}
0 s1 s' f) H1 L
</SCRIPT>
" S: o$ x# J" s
<SCRIPT LANGUAGE="javascript">
6 D& r) i2 U* \, t
Decode();
3 {4 I( b$ Z4 H7 B9 b
</SCRIPT>
+ L( z ~8 n+ g9 q2 g8 G
</BODY>
6 w/ K: K( ~+ W% e( ?. K2 Z1 f3 {
</HTML>
N. e* S, `( }% O1 k: ]
$ W2 o# J& S. D
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2