标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
8 ^, I# G; u* L5 Q; [+ k' n
5 \7 L, X1 w1 n2 A% e7 ^5 p' R
T2 \+ v& U# J0 t
方法一:
7 V) ~9 U: Y* [2 Q- f
! x( \ w4 l( Q, X* T2 F
! R# n! y8 X( W& {/ p
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
7 U; ]. Z% P( I" x( t
3 J& M+ G% c4 e
<HTML>
) D" Y8 Q7 C) B# v' N; Y: n
<SCRIPT LANGUAGE="javascript">
& A2 x: M0 a/ q
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"
# {5 b% {) Z0 V! M$ x5 {$ O9 T
var NewWords;
6 {. [- ~# w0 d! |/ e
NewWords = unescape(Words);
- M9 D2 \: j0 s7 A* d
document.write(NewWords)
. }( O. [5 d; |% Z& k! I
</SCRIPT>
# m/ z; v$ Y U/ k) r2 g' b+ w
<BODY>
! F1 n' n6 N; F# Y+ N- S
</BODY>
6 h e/ D7 R [3 ]9 q. v1 F# r! X
</HTML>
% N) u9 x& \" H
[+ z2 }* s6 y U' G+ ~
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
* H* N8 c0 b8 t* g3 g1 M+ r
* v& d5 L) ~$ ^8 A! y
<HTML><SCRIPT LANGUAGE="javascript">
8 t% f# _ f# Z/ _6 R9 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"
4 E& u i2 f! h u2 i4 O
var NewWords;
" j- C/ m4 {0 }+ ~ V
NewWords = unescape(Words);
! r4 R4 c0 H; E
NewWords=NewWords.toString();
3 V7 T0 Z! `) P
function password(){
5 R* d4 |0 y# C9 _
document.pw.txtpw.value=NewWords;
: Z Q. D9 x4 v- n& \% u" P* Z
}
: T3 c- R9 a* S* _' ]9 d/ Y
</SCRIPT>
. n2 A9 P1 x4 D; d9 a* S& Z; W
<BODY>
/ M' `8 E9 C% ^: v+ C
<form name=pw>
( w" Y# e- I; v, U
<input type=button onclick="password()" value="解密">
% O( I# O* r& f' I! a# I* I% J
<br>
- y; Y, r7 }1 H J# C# p
<textarea name="txtpw" cols="100" rows="100"></textarea>
& y, p- K: m( r! |
</form>
! i: r4 Z5 c7 o
</BODY>
2 b$ L5 p( [, w. Y0 o/ J8 g
</HTML>
4 X( d2 K j7 Y$ C( |
, L. i1 l ^; \& E# M8 E3 N7 c7 D
方法二:
; r; M' u: K' a# T' z
' e2 H% m/ c. ~' b. [# a; N
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
8 U) v; i* ]8 S; o+ g6 ^6 T. r
6 G3 `& R0 l; B* Z
<html><head><script>
D; s8 Z' C, 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 ); }
7 \7 T2 A, s! x) l( T) E
var sJsCmds ="" +
1 H8 t$ G) G1 C% I& C4 T# Y5 k
"?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 i/ ]3 e
"";
* s( t3 E- f3 m, V
var s= Carbosoft( sJsCmds);
# w) K5 R; k! ^
document.write (s);
+ w Y( w2 N+ o9 Z$ L0 E
</script>
0 D6 _/ z/ l" j% |6 ]9 J
</head><body></body></html>
: g4 G* K) d. S- y
" I" f/ z5 x1 i) \ [2 J4 N
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
7 q8 k; I7 r# k! ^- @+ t
: A3 v5 e Y( X2 A0 [8 i) R
<script>
2 g; `8 F& ~0 _2 ]
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 m5 W" `3 S* V9 I" y4 _/ }
var sJsCmds ="" +
! }9 I4 V3 P6 I* M1 x
"?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" +
* n+ s' a7 u( \, ?- `* e R
"";
9 U0 a) ^+ e. j1 k
var s= Carbosoft( sJsCmds);
! K) R) H. Z3 f2 l/ K/ ~, Y
</script>
& M/ E1 \) A& o( p b1 R
<form name=qq>
! P5 J/ R% r) W3 ~# Y7 j8 |
<textarea name=ww cols=100 rows=10></textarea>
) s# G' j/ O9 f1 p% |
<input onclick='ww.value=s' type=button value="解密">
+ G: W, ^6 a, e4 G
</form>
9 u1 e' o v. W; ^2 ^0 m) i3 z
! F) q3 k: b4 _
: a- _* e! u/ h
方法三:
1 n4 Z5 G1 H: l: a3 R
6 I% j1 m. s2 z+ G; a4 |) J J
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
: o2 a0 g4 E h
, j5 m, H( W" T* l2 {- ~ F" G9 F: K
<HTML>
8 P8 W2 c' i, B$ h$ h: K, W# ~0 m
<BODY>
; C) C3 h/ v, m$ C3 U% c- ?
<SCRIPT LANGUAGE="javascript">
x' K2 f( B' H8 S
function Decode() {
; a F) h5 @+ e- Y9 u& F( F
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;}
+ i4 m* K5 o7 o' ?( K
</SCRIPT>
7 g* E; m" K( O* P& Y5 J, E2 |8 a
<SCRIPT LANGUAGE="javascript">
( C. d7 ]$ N4 n( S4 c+ d
function d (enc) {document.write(codeIt(key,enc));}
; k1 u: O! _. x* B
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;}
3 Q& N7 K9 {; |1 ~. P- i7 c
</SCRIPT>
3 p$ }9 i% ]0 E0 H& i
<SCRIPT LANGUAGE="javascript">
, f: T0 y z1 c% E9 T- z' l2 ~7 V& p
Decode();
* K7 q5 L4 x t w6 u; p
</SCRIPT>
7 z3 R1 Y# ]% m- s
</BODY>
: e% l8 Q4 @% e* X6 M, D
</HTML>
8 @ t& W. U7 ~* r
0 q& X6 Z7 q! Q. b' A: Y% {1 b
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
! N* o' S; z4 k
5 M, J5 O" p c1 m7 v5 r
<HTML>
& b; s( x; P4 k! W" l# H& d _2 n% E
<BODY>
1 R% [- w4 T1 Z
<SCRIPT LANGUAGE="javascript">
# T ?' G5 I, Q& q4 O/ @3 B
function Decode() {
- w# i: F" u4 O- z8 i8 w! 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;}
/ ?/ ~8 K# _0 C. s8 z3 `' H
</SCRIPT>
' `- [4 ?* V( D; W+ Q3 \0 X
<SCRIPT LANGUAGE="javascript">
& w8 @) }# L* R4 B2 F; w
function d (enc) {alert(codeIt(key,enc));}
, z) v1 H9 m& 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;}
' l) }& G6 P4 @8 V
</SCRIPT>
) E: Q4 p5 [: k6 ^9 G
<SCRIPT LANGUAGE="javascript">
5 ]9 w- S( C% [" j ?
Decode();
1 B; ?& M* o$ I! `' H+ w8 [+ F; @
</SCRIPT>
- C, \7 m% l& w$ @
</BODY>
! u2 x( U4 P/ Q. N# Z! {" N
</HTML>
0 f7 e& Q- u2 d4 g; W
+ w; F) _) q' h! i: ^; Z) ^
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2