标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
4 V' W: U# Z1 T! A0 n" }: T
3 r, w! B+ f3 ?* z& c
" I8 p$ R$ A8 G' k
方法一:
0 \/ z' Y9 y" w. _! s
2 h/ S' P$ I; E( u- C9 v
$ g& d; O3 ^' S
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
3 c2 B4 K1 ~: ~7 K$ y3 x' S
6 R6 {8 f; R5 X8 z' [" S
<HTML>
% i+ J9 h9 d' P9 e$ b1 a' {
<SCRIPT LANGUAGE="javascript">
$ k! w" Q, c# e. D0 U9 A
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"
+ l% \. E& j: D( [6 s! i2 v2 M- S! w4 L2 b
var NewWords;
2 h+ N& m/ ?: J& r; z" l
NewWords = unescape(Words);
# D7 E( @# N x
document.write(NewWords)
0 e7 K" \0 T, Z; [/ ?' a
</SCRIPT>
; i$ [% {$ n4 j; N. X2 P
<BODY>
- }& h) y* m) T- Q+ y+ P+ ?( h0 Y
</BODY>
' O; y- L/ e- i" b- K
</HTML>
: }. E, S* E7 |" \
: ], y& y, J5 i' G% V( _
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
% F4 C/ A' R: m& ~/ j3 m
# U( R4 b# P! H! F! |' g1 L. s
<HTML><SCRIPT LANGUAGE="javascript">
8 ~8 g$ L; O6 j8 B2 f/ 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"
9 |& T* p( i N3 I6 X( w. P; M
var NewWords;
) v8 m# E$ k1 \: g) r9 W4 ^% d
NewWords = unescape(Words);
: K0 i4 {1 f4 M+ w) J N- s* U
NewWords=NewWords.toString();
3 m& @) T" O) W- I9 X3 D/ _: t
function password(){
- B2 k8 n0 q+ D# B- p8 `
document.pw.txtpw.value=NewWords;
9 Q, x, l5 I9 Z# P6 x' D# n' a5 x8 I
}
' \1 O5 y3 f; Z1 W
</SCRIPT>
7 H% s. v* P2 ?! M! I* W1 d* X
<BODY>
$ `7 j& O/ w% j G# v0 T* V" e
<form name=pw>
3 g" W1 Q% t4 n# B0 E ~. M$ ]5 t
<input type=button onclick="password()" value="解密">
* t! o6 v6 Y+ F* J% K; d2 F; ?# ^
<br>
1 T, \0 w" e: S6 z. m
<textarea name="txtpw" cols="100" rows="100"></textarea>
0 Q+ y) v) M& d1 X' ` r3 s0 n# D
</form>
* U/ |3 E6 [0 c8 w( |' X% \
</BODY>
# }: ^' _. x% H8 R
</HTML>
/ w* J0 ~$ n( l! M% r4 R! s" c8 z
( E) w' i3 h! N& \6 n
方法二:
" n3 j# }* R, Z# N [
$ Q4 i% ~. j$ T
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
# p% Y0 s6 w r0 j; ], V8 j( H4 P
0 ?: h+ i2 U- J b' w) D5 j& g. K
<html><head><script>
: v5 P# n6 v7 g
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 ); }
4 e( `; }/ s3 J2 y1 H, B" u6 W
var sJsCmds ="" +
1 H* ?5 z2 Z2 K8 c6 L( F
"?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" +
% D+ m/ s6 m) R& s* x* X5 ?* n
"";
3 `, G1 P6 A9 L6 Z+ d, p
var s= Carbosoft( sJsCmds);
/ ~7 b* \9 o* i t( C3 z/ d
document.write (s);
6 j6 ~: c& M) A& P$ Y( y
</script>
2 u O" a* p# P
</head><body></body></html>
" H: {$ h m% s f( w$ n+ n. G; r( V
`- \" z" o. c3 j- E% R
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
5 r }. p+ X- @
! d- |1 K/ Y9 c! v! X. Q. D- k5 A
<script>
8 \- J- h& j/ O+ 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 ); }
- K( S/ [) G* F$ L
var sJsCmds ="" +
: \ z) i; o9 T- @4 u5 |: _: v0 i- B9 g3 B
"?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" +
) L- ]6 }) L% Q8 e$ T7 J# f! {, U
"";
$ v8 w# V; l/ M% s3 v
var s= Carbosoft( sJsCmds);
& a) ^0 a3 C6 @2 Q: e. p8 ~
</script>
; g0 Z: s( i9 w r, R
<form name=qq>
, q3 ~2 r& F3 I: s7 e& Q
<textarea name=ww cols=100 rows=10></textarea>
0 \# o+ E/ |. k" d
<input onclick='ww.value=s' type=button value="解密">
0 G3 M. y1 l6 \1 k9 a4 C5 R
</form>
* O3 A/ A% s5 }
8 L; o5 {" t$ B
. z8 E, V. y0 }7 } k/ T* Z* A) E; F
方法三:
4 q+ h. ^. k$ {( c1 R6 @+ `
% z; W, U6 _& O- {1 \
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
( [' _1 X# D" `
- Q$ z% o& Q2 O. q5 p
<HTML>
" t3 z8 ^9 f. q( E) K/ J8 `
<BODY>
: B( x0 b0 l% z6 S
<SCRIPT LANGUAGE="javascript">
9 a) A4 F7 I5 A d. ?4 h+ \
function Decode() {
% [$ M8 W# s0 V V6 ?, q1 z
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;}
2 S" r8 H# T, \3 I
</SCRIPT>
3 v$ ^( j* |% y3 `% S1 V) z
<SCRIPT LANGUAGE="javascript">
$ r6 s4 E. T0 V5 f
function d (enc) {document.write(codeIt(key,enc));}
7 G! @' w; a1 H, h
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;}
# t( a) \9 R6 ?1 Z; u
</SCRIPT>
) [" M# |8 ~9 F! [0 {: F q* p
<SCRIPT LANGUAGE="javascript">
6 q) Y) l5 g9 m" I) }
Decode();
/ _! R( l- ~% ]- |3 D V& [1 e
</SCRIPT>
7 Q2 W% v( K' ?; o6 K% a
</BODY>
. ?5 I8 T2 C: L
</HTML>
; `0 l7 @# |- r1 _) b& x
' E3 }% g4 B2 \. q
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
] n, P9 }1 |! i
* G8 i5 u" n! [0 t3 F
<HTML>
\8 R! |5 G' G* M* x7 b4 h
<BODY>
5 F, v/ M2 h% D% c+ h
<SCRIPT LANGUAGE="javascript">
0 A4 D: X. A, I3 x) h0 E! G
function Decode() {
0 m* k7 B7 k' i8 t1 F; O+ V
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;}
5 O3 D- K- T" H3 G' A
</SCRIPT>
; Y+ V( d1 E2 ^7 U U R; A
<SCRIPT LANGUAGE="javascript">
7 [! g \ J- T* @6 @) m
function d (enc) {alert(codeIt(key,enc));}
1 @1 m5 L: p# A( L U$ y
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;}
; A) I1 z Q" @3 F
</SCRIPT>
) O' b1 c R' ?3 q
<SCRIPT LANGUAGE="javascript">
. K- R/ `& X% g$ A
Decode();
1 v1 Y. f9 Y6 c
</SCRIPT>
( \( w4 f _3 M k$ L( U2 w
</BODY>
! V3 w3 T2 U' g
</HTML>
3 x* r2 I- C6 B9 N5 s4 g" L# y1 e$ n
# x# [! h6 l+ I! l3 g# M1 k
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2