标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
7 |) `/ S% `* ~1 ?" p
6 }6 o! }* n7 Q, d% X" _7 C8 B
2 O4 d3 ~ P5 k" N: o* h3 D
方法一:
8 _; s. M! V2 o/ z7 }3 E. w9 z
3 s# k' G6 P6 h# V6 V: C6 m: _
' S& Y, K4 Z9 V3 Z7 a
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
$ P4 q" U5 @. [8 m6 ]
d) {6 b, o# r! d$ W
<HTML>
# p+ w6 u |" L! W& y' J
<SCRIPT LANGUAGE="javascript">
: T4 B& d- }5 L4 Z1 X
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 C- t: b2 M* r& E
var NewWords;
0 m$ x8 O8 o& u: u' l+ c' j
NewWords = unescape(Words);
$ b1 m1 j% U% I9 H- g" u+ z7 b* j
document.write(NewWords)
9 _8 M5 G7 r9 L$ e
</SCRIPT>
5 w: A B' a$ N8 a) _, D3 {" w
<BODY>
8 l, ?+ N' r( v8 F6 K
</BODY>
0 S9 w( M9 G( K; u1 j2 g, G5 |
</HTML>
: G0 M4 i. z: a/ M* w" F- K. j6 V+ O
; Y8 A- ?! z$ i& \
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
3 X1 D7 A3 a' `# I
" g- T& r& p1 ?8 w/ z
<HTML><SCRIPT LANGUAGE="javascript">
$ _( r: ?+ j* O# V, p; ~4 U2 Q3 k
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"
3 [, Q, Z* [$ D6 o2 m9 o7 A( q
var NewWords;
, s0 C8 B% J( `9 b6 G
NewWords = unescape(Words);
$ Q: W; W. L1 Q! q3 b0 c0 V" s4 p
NewWords=NewWords.toString();
% `! e( ~2 I8 Q
function password(){
% R1 J2 T5 N0 b, R" Z
document.pw.txtpw.value=NewWords;
( H m5 \* _" f6 R, H$ P0 g: ?
}
9 {4 }3 K( u1 L8 D) I! j; B9 C
</SCRIPT>
. t2 h3 e, N; ]( \. F+ B5 Q
<BODY>
" d! N( |1 z8 G3 x% y* _8 Y; ]
<form name=pw>
' r& p4 f$ h9 u. w
<input type=button onclick="password()" value="解密">
! ?: |! k* X% Z2 ?3 f5 O
<br>
4 I P0 R! g% y9 C
<textarea name="txtpw" cols="100" rows="100"></textarea>
4 Y. M- F- a% E
</form>
4 H( R- q. n( v
</BODY>
. [3 X; ]6 p7 n. {
</HTML>
9 B" M7 T, z2 R7 V
1 b0 G I. A) N+ Z
方法二:
( C* n( @1 `: a x6 ^
5 W5 i8 @' Q" `% ?/ o7 p4 ]2 }
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
& O' _! z( j* i+ q
* P! N3 w" V2 ` j1 E/ u- e N
<html><head><script>
1 U6 l0 O6 k6 t! f6 }
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 ); }
& y( P" b- H) z. h% k6 }4 v
var sJsCmds ="" +
& z# F# T& n3 S/ [
"?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" +
" p! c# f! K5 N% {& j) o' j
"";
; w1 x0 y" ]* c( ~+ S: k4 r1 e
var s= Carbosoft( sJsCmds);
$ V3 m% C& ]2 P9 g
document.write (s);
" h! G- x8 X+ b# [3 m
</script>
! D8 R% p! h8 R( {* K+ `
</head><body></body></html>
% l0 _8 d- S K
/ V. Y7 e% n1 U; j, ^! e
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
9 M7 a+ A7 T' u/ b+ q+ U: ?
8 o# `. _ c' l j2 K! S4 u& s
<script>
3 o4 E; d4 u$ _/ ~; V5 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 ); }
& a' w5 f9 h4 N. Z
var sJsCmds ="" +
0 ^8 r+ g7 o" 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" +
u8 x+ n( b6 X9 V
"";
- e M. Z( T, ~$ y
var s= Carbosoft( sJsCmds);
% e" I- Z c" d0 w; w, m
</script>
( t& `& X8 n7 ]2 c* D i5 _
<form name=qq>
7 \" M5 h2 X3 ?/ G" j; x, p
<textarea name=ww cols=100 rows=10></textarea>
}& P% |8 k+ ~" ]5 o& T2 U; Z+ F
<input onclick='ww.value=s' type=button value="解密">
1 x; q6 A" u3 r6 q5 r: U
</form>
, m, [- B' X, t6 [
- _4 c+ ^, S1 u* U5 x
0 b6 e0 Z% [! J2 _8 Z3 Z
方法三:
( `& E4 l$ U& I% c8 \4 X
6 ]# \2 i! Y& v/ T
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
7 {, ~/ ^- D2 D( l
- c, V! `/ B7 {/ n) z2 ]4 P* v; ^/ x
<HTML>
2 F; _, V! O! Q! a# S
<BODY>
/ H% ?& a5 r/ ~7 W
<SCRIPT LANGUAGE="javascript">
% h( c: a( S& L Y
function Decode() {
( J1 x4 q" n0 O2 _& D
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;}
, r8 R( M2 [4 F2 b. A
</SCRIPT>
5 c9 j* r, f& n0 \% c
<SCRIPT LANGUAGE="javascript">
& u. j: {; O4 [; K2 B- ?, Q0 M
function d (enc) {document.write(codeIt(key,enc));}
7 V% p9 \5 q+ L8 o8 u; Q
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 e3 `, _+ q5 `% e& N
</SCRIPT>
y* ]% t# P: G5 z9 v
<SCRIPT LANGUAGE="javascript">
4 b( O5 H" p( T7 J- I- S; c ^
Decode();
+ F$ w7 g/ Z" O7 s
</SCRIPT>
* ~3 m) i0 ?3 s8 G$ K
</BODY>
" S j' r" Z1 A9 K) M5 w. o
</HTML>
$ r+ e! l8 ]# f3 ?; [/ K( w
& d. C$ k, v: J# p
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
: ?# @* S7 n9 v s4 \8 B0 `# g
" f, C8 p6 S; Z6 ~* H
<HTML>
/ u/ [- A$ c/ m
<BODY>
% D$ F/ x$ x. v/ A1 D( [$ ~# d& B0 S9 G
<SCRIPT LANGUAGE="javascript">
' o) a1 k+ l( y+ d% E8 c+ r1 J
function Decode() {
/ o6 S, c; V/ Y* 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;}
8 P. O4 P5 c, D5 S2 V
</SCRIPT>
& l8 d# m6 k h( M) A" Z
<SCRIPT LANGUAGE="javascript">
# b5 g1 u3 U$ e( d# U* y
function d (enc) {alert(codeIt(key,enc));}
' |7 \; L& [0 D" Y) F& o
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, l O, i9 B2 T2 [. ^
</SCRIPT>
. g( h& Z* m+ o& N
<SCRIPT LANGUAGE="javascript">
/ T& K& [% f9 T4 A+ J4 }
Decode();
0 L' J% g* h( @# p, Q
</SCRIPT>
6 i5 c W' a: ^- [* ^9 m1 ?% R
</BODY>
X: y" l7 k, M; r$ v
</HTML>
% Z* ?3 T8 ~+ y d2 o
1 J$ ?# R5 S" O; B! e6 T
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2