标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
+ u( c# p) w' W4 Y/ P0 L" w# A/ o* P
% O6 D- d. s5 j/ a% w1 y7 m; A
/ Y9 L, S w& C$ M5 T
方法一:
0 c+ q& M) _; @! G8 a: @
/ v( {- @5 W$ n9 @, F7 f6 x) g
N! t4 `, R5 ]; K9 u. w: N3 G
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
4 e7 M. p$ a- X
5 Z; i# k7 d2 ]" m( ] F
<HTML>
# T/ G8 d- k) b1 w; b
<SCRIPT LANGUAGE="javascript">
" i9 m: ^9 I) R- 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"
/ ~9 C, K: ^8 H" X- T
var NewWords;
! U; c& m* Y1 c: @- s. J8 i
NewWords = unescape(Words);
3 Z5 O T9 o9 O5 b6 g: `! S) r" p
document.write(NewWords)
6 {7 K$ ~6 s3 W5 D! ^4 I
</SCRIPT>
+ j6 }7 V0 A; j
<BODY>
) Q! V1 K. s. v
</BODY>
& G0 `1 [5 e) \& G. {( q
</HTML>
2 \, K2 x, a, [3 J2 X3 [' H, y
: s9 \, I, Y5 w" f1 d
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
: l8 I; M; O( \( B) W
- T- a4 q \/ g& y$ j' n
<HTML><SCRIPT LANGUAGE="javascript">
# [4 @' Y( e0 c- G4 i, b
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% @- e+ D: ^ t; f
var NewWords;
2 M E V+ v5 J K
NewWords = unescape(Words);
. M7 L9 {0 M6 ?' N: r/ b
NewWords=NewWords.toString();
& F3 r$ Z& P% e
function password(){
! j! w( }3 t8 f9 p: u% ^# Y
document.pw.txtpw.value=NewWords;
8 F" P# \% n+ s9 O, O% ?- |
}
& F! l" s9 t! h8 K! {. m
</SCRIPT>
, Q3 S$ D+ x6 F; q Q
<BODY>
* x' `- A+ G/ H0 S
<form name=pw>
3 ^- d) ~1 b; k2 L. ?& H
<input type=button onclick="password()" value="解密">
; j: r% I; p9 l6 q. k. [1 L/ C
<br>
+ {. Z+ J r+ S4 [- Q
<textarea name="txtpw" cols="100" rows="100"></textarea>
5 d% u3 _5 W4 d* x6 C$ O( }9 e
</form>
0 r0 u; r% r0 D1 X: k2 v: c, p1 J
</BODY>
0 Q% i$ F8 Q+ @4 {9 k' A
</HTML>
: T5 a- _, ?* S! |8 q
+ Q+ H3 `- _# x: z. s
方法二:
/ p9 }2 W+ Z; b$ W/ A- U! G
/ A. m: _( [6 J Y" r
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
" }& ~5 z. J9 a8 I" T
5 h/ S; ^% x/ ?+ T, ~
<html><head><script>
T/ [& D+ Y+ \( x5 {; 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 ); }
! I/ l$ Z( y5 X2 V4 b. ~
var sJsCmds ="" +
/ Q6 T$ R# \' B4 V7 u, a' s8 w
"?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" +
e$ h3 P' J6 t: O
"";
* ? h0 F- n7 f- `. _8 R- L
var s= Carbosoft( sJsCmds);
+ W) W/ b# w2 e7 W6 n8 D
document.write (s);
3 |$ {; Z0 Z0 c/ I0 N! z* O
</script>
" ~2 i. w" U+ Q; X( W% l& M5 G
</head><body></body></html>
, b3 R8 H' t M$ f# b
2 `# n5 v' o" R X( T
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
6 L& x# p, P: R, n; @
/ h, k9 J/ L: x; @0 |
<script>
3 R/ g: O5 p7 f
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 ); }
9 s2 @. |# |& i, x8 U% I
var sJsCmds ="" +
6 I1 Q0 I% Y$ C$ v) A. g) a
"?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" +
/ L9 Z8 Y, r" R7 C5 Z, J4 x
"";
; d$ y( M% a5 @5 g3 Y# B
var s= Carbosoft( sJsCmds);
$ C) J2 l; Y: [. l
</script>
9 @5 R! J5 {( d" }& }7 {
<form name=qq>
+ K) H1 w* X9 y
<textarea name=ww cols=100 rows=10></textarea>
( ~2 ~* b3 c: j
<input onclick='ww.value=s' type=button value="解密">
6 w# A! Q' W' H% u- T+ A# {4 B5 l
</form>
/ z9 ^ h" M0 H0 B! X
' j: `3 B2 K$ Z; a6 J1 O
0 o! ^# m% @5 Q7 v* M! f
方法三:
2 n6 V3 J4 ?& K4 D6 j3 Z
9 y. K+ ^0 I; o ]* B
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
# _+ D6 M, C2 N! d2 R. g5 O
# R0 T4 A- i7 @7 B7 s' m7 J$ h' [
<HTML>
3 U- C5 Y3 A3 k6 Y
<BODY>
/ G& Z9 T+ O+ l0 m& W
<SCRIPT LANGUAGE="javascript">
" ~. f3 X3 h) }! q3 F' g
function Decode() {
: R. F/ r* {0 l; 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;}
9 W5 z& {3 X- C8 j4 ^9 ?& x
</SCRIPT>
5 r) ], [. `( R- g
<SCRIPT LANGUAGE="javascript">
& z% R$ S7 a8 p# I! h
function d (enc) {document.write(codeIt(key,enc));}
/ m5 E7 t2 J S& t) {
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 N6 j9 T: P: F: s) D
</SCRIPT>
7 F6 U3 A- Z5 R4 N" v
<SCRIPT LANGUAGE="javascript">
* N, F8 @# t+ H% {. \* [9 f
Decode();
2 X( H4 Z* g. [4 r9 l0 d
</SCRIPT>
- e7 [! b ]- O7 j( x* Q5 G
</BODY>
$ X% ^2 I$ b. h8 c0 x
</HTML>
0 g/ k& }9 i: N1 R5 w& Y5 t3 _
; L5 B# k3 p% y: |1 i
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
2 u" b+ }! r9 `
/ ~* |5 o3 J* N8 y! J! l
<HTML>
4 u" b N& H% j4 q6 r( S4 T
<BODY>
& B o& }5 d! Z. L+ x% J
<SCRIPT LANGUAGE="javascript">
( u6 _' v. G$ Q- A' X
function Decode() {
) Y8 I P+ r, W4 ?- v) s: 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;}
! B; B( { V2 \: [4 ?! V, r
</SCRIPT>
2 F' c8 D( |& ~8 D
<SCRIPT LANGUAGE="javascript">
0 F6 I! C) V+ x2 j& e
function d (enc) {alert(codeIt(key,enc));}
( Y2 X6 M$ E Q( ?9 G
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;}
1 N4 \3 o& Q" x% A
</SCRIPT>
' I E' ^9 D. [9 L2 o$ y' T
<SCRIPT LANGUAGE="javascript">
' _6 a" y2 c5 s
Decode();
/ p7 w2 ~# e$ r1 z: w9 A+ r
</SCRIPT>
. k6 K* }: \) q' R$ }* f" d. {
</BODY>
7 J" ]* y. G/ M" x
</HTML>
4 T1 m8 T Q4 t$ f
5 O! }; v& k# ~. n" e
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2