标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
/ g% m* Q X# H ^5 S) x+ V
$ m$ s$ B& e5 A8 o# }8 S
& J) X5 h$ |3 l) x5 Q5 Q, @6 n" R
方法一:
6 X% _' D" Y4 }
, ]9 b8 I1 _& I) }. o$ f
5 L0 t5 x" [/ Z" H7 x8 W% g m* ?" @
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
0 K+ |! {. b y, O; O
) O/ u: K/ G3 u7 u9 p: i1 r( Y
<HTML>
+ P& Z4 b6 C; {$ A9 G: \# w, S" v
<SCRIPT LANGUAGE="javascript">
# L i7 ~# s$ l" [/ `2 E3 R
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"
% d4 q, \5 Z/ K% Q. t
var NewWords;
) z6 I: b) p1 W( ?' {( W/ H# R3 k9 Q
NewWords = unescape(Words);
9 a( W- f& W4 X" Q
document.write(NewWords)
4 G5 A1 i; O4 p# T. E
</SCRIPT>
7 {' X/ p C! w$ c
<BODY>
" m) D7 N# i! ^
</BODY>
9 Y1 U( `2 }: u0 e4 U0 a/ ^! w
</HTML>
( ?+ g: g& n, i* e! p
/ ?" h2 q7 a, v7 X" L3 ^
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
) |$ B1 f, {" e% B, L
8 x' J1 y- t9 t2 s& P4 E! K
<HTML><SCRIPT LANGUAGE="javascript">
4 |( \ p3 S$ r1 M; _6 O. O8 h* 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 u; ?% ~+ U0 t) X
var NewWords;
9 z; g7 H, z9 X2 Q
NewWords = unescape(Words);
* u" s7 D0 C1 {" i" c( y5 X3 E
NewWords=NewWords.toString();
- f4 h4 \6 s' J# V
function password(){
: G e O' ?# g6 L+ _
document.pw.txtpw.value=NewWords;
8 O0 D+ C8 q& d G4 c
}
, X, |$ j* i$ U; \) `) V7 x3 w6 w j
</SCRIPT>
! u! e/ S- v1 J5 i5 E: [- w
<BODY>
8 f. p" B8 S" g- n. W9 [' ]
<form name=pw>
0 ^/ q( ?$ {2 P' B7 {7 u7 D
<input type=button onclick="password()" value="解密">
0 ~% G) w. t- M
<br>
. J C" h* c4 R4 }6 B+ H/ G5 T
<textarea name="txtpw" cols="100" rows="100"></textarea>
# ~6 F9 l2 X, J2 d' ]0 ^
</form>
: l- V4 S: q' m2 p# w3 e
</BODY>
, A( s: g# n+ O4 M' o, v& }: K
</HTML>
4 q0 ~- L- H$ U$ ?! p
2 W3 c$ l V } E
方法二:
$ k2 p# d7 G8 A1 W- p# f
! f3 y& v/ X3 h/ x, b$ ~4 e& D
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
" L/ n. l1 B; P
7 c) {4 S: {/ E; x. ?; W
<html><head><script>
( x# a; C; h& e; p9 o$ [9 p: m, 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 F' L- b# |1 ?0 S
var sJsCmds ="" +
2 x/ Z" f3 q1 @5 C
"?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" +
" B7 t) c- k& p+ k$ T$ e. c0 R
"";
8 M( w' W( T' l; o! i* c) c
var s= Carbosoft( sJsCmds);
9 M' q; [9 {. ]$ g3 g
document.write (s);
- j) ? n5 T3 Z7 p0 L
</script>
) R3 M$ u2 K6 M \3 c" S* [
</head><body></body></html>
* v y/ x1 k3 g5 R. _8 [1 I% R
, D# G6 C+ X% p6 m# |8 y
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
: `0 O% q7 j0 u1 s- U% w
" }1 K; v7 D: F8 T* V
<script>
7 G* R& ~* d( q: i4 G, D
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 ); }
# V5 G: u9 u7 m3 u! }" l! H
var sJsCmds ="" +
# a9 d$ s8 ?* X5 `
"?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" +
* ?7 ]/ p/ u T. n, x) ?1 u+ j! v
"";
' e/ Z3 b8 Y$ t, w5 B. x
var s= Carbosoft( sJsCmds);
/ \' n3 I3 U, {- Y/ k( Z' S/ Q
</script>
2 B$ R: g7 v I3 b3 X' V
<form name=qq>
! C* J7 y* G! n* S3 w
<textarea name=ww cols=100 rows=10></textarea>
4 J* x5 F8 N# b" h7 a& h$ N# Y" G$ @
<input onclick='ww.value=s' type=button value="解密">
+ u/ l0 ~8 k+ L
</form>
1 W4 Q6 n; ?7 i( Z
+ [0 C. h ]5 D* V
2 K+ O4 t* Y" I4 s. [6 l
方法三:
2 t/ u6 j0 Z% [! L6 P4 [( h9 P
) z- x+ w: [% r2 Q2 K, @0 y
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
( G7 N1 Y- O& E [* \
: G1 w; v$ d! S" f+ E" s2 l
<HTML>
" C" w8 I* r- i. y' O# F; W
<BODY>
# c2 c' X7 Q O# S2 Q6 \
<SCRIPT LANGUAGE="javascript">
5 Y; b+ p R. ^4 m& o
function Decode() {
% t; X6 W: a8 o 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;}
z% Q9 R- b* W% w7 T
</SCRIPT>
1 X$ J' ]; Q/ a5 P+ E9 ^8 n
<SCRIPT LANGUAGE="javascript">
: S7 o8 `* Y, d( ?7 j; ~! F0 V6 g
function d (enc) {document.write(codeIt(key,enc));}
1 j J G# N7 j0 F3 r* l5 g" I
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;}
! h! \* _- D/ F
</SCRIPT>
; e; s1 C- ?' n
<SCRIPT LANGUAGE="javascript">
) J! q' a$ t. Q9 N
Decode();
: u, p! p* V0 J; U; M3 A6 P
</SCRIPT>
3 M: Z, Z& O& }+ P7 g$ i6 S7 s
</BODY>
/ Y! ?. o$ @% o8 H' R& z1 U
</HTML>
7 a' l7 q. x* _8 U1 F
, }5 K1 d& Z$ d) A$ n4 P8 C
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
$ V1 b5 Z' W; H2 L1 O
; G8 y) m& p$ Y' T9 @
<HTML>
% \# l" a! e+ s$ ^6 F: q
<BODY>
( [- V" E. W! `( @4 k* x6 l
<SCRIPT LANGUAGE="javascript">
2 I/ H1 {6 U- _2 [' T
function Decode() {
: t5 E+ P: C" b/ r% U
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;}
% a" v: B- s* u; G* o- H+ u
</SCRIPT>
5 d. z$ d6 r7 l
<SCRIPT LANGUAGE="javascript">
: ?* F0 M3 K: f; X( g
function d (enc) {alert(codeIt(key,enc));}
' R/ U% C9 m. D% w7 S
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/ q" H4 J/ r$ S+ I
</SCRIPT>
\" W7 |& T( V j* u _" R9 p
<SCRIPT LANGUAGE="javascript">
0 R" l/ F$ l9 Q6 h5 K* U( l
Decode();
2 r3 k+ E0 j" B0 U" \
</SCRIPT>
1 i% Y/ T" y2 c2 V/ p7 M
</BODY>
1 [; T$ Q2 l1 a+ W
</HTML>
* }$ d+ M1 i, k" x N
/ k. P( c5 s5 J; p7 a
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2