标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
' _5 \5 Z# N9 \- l( C0 j6 t# Y, O( ?
: ~' b. q, j( N
9 r5 T8 H: r! G8 g3 t( Z
方法一:
/ {* n: o$ {4 b2 _6 L3 [) G
: H8 g4 x- ~: }: _+ W$ f
: p& g M) \9 R% J" |
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
3 `' G" }2 h& ]) O
# v% T, J7 B% K8 M+ R7 I4 e
<HTML>
/ g# z$ z7 O- m
<SCRIPT LANGUAGE="javascript">
Z" l1 K( K: k& R6 }" K/ N5 R- P( T- z
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"
8 s |, U1 f- T( i5 N7 q
var NewWords;
3 e! [' f3 K8 f/ Q& O9 n
NewWords = unescape(Words);
, s2 c: _- ]; |7 T% {- A6 ?. o
document.write(NewWords)
4 M% a- x. z0 @" n( R! G% p+ V
</SCRIPT>
( W/ q) o" S+ u; N) U N
<BODY>
3 w7 h- [9 m! I% e% C
</BODY>
9 l X1 j# G8 |4 z6 n0 w
</HTML>
1 L6 q9 z, `6 b& ^2 @; |* E; A
$ B7 ]. w! Q- C( y0 |5 V9 P+ w: e, a
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
+ C( _2 [5 m4 q3 v( ~+ ]
9 I# d# u8 j% R
<HTML><SCRIPT LANGUAGE="javascript">
2 P8 g6 [0 S7 j$ T1 P9 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"
( k4 P3 J- l! R8 V7 N! I. F
var NewWords;
u$ e% ]: Q3 N [4 l
NewWords = unescape(Words);
o6 c% _2 i+ o, Z7 W0 a- k
NewWords=NewWords.toString();
% C9 E9 J; m, k6 r) @5 i
function password(){
7 K3 i' d9 [0 b8 W& l# f
document.pw.txtpw.value=NewWords;
/ D5 S" I" b: m- g% Q4 r
}
/ h) K4 m" N' B; P" y7 }
</SCRIPT>
% L: x, }, l: j5 l9 S/ o/ ^, Z/ Q
<BODY>
2 f z0 `3 ^6 r
<form name=pw>
& Y2 |/ \) L$ l0 c5 v) F
<input type=button onclick="password()" value="解密">
1 e1 N+ e- w% N0 C
<br>
9 k0 s/ O8 R4 q f
<textarea name="txtpw" cols="100" rows="100"></textarea>
{( Q) T! u1 G+ t' g1 c. P
</form>
: w9 B6 _+ g' J9 m9 C* g. e
</BODY>
2 d$ T+ w" p C& J# W9 }
</HTML>
/ A6 H$ N. S! W" s2 h
6 b2 T9 J/ r8 b& [
方法二:
! k. w' P7 ^/ p6 G% C
5 o' X' ~6 T$ e: L2 o+ }
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
1 a0 J% H E! y& T9 q
4 w5 c' f% C, d8 f
<html><head><script>
5 D+ P5 Z( Y; p) }& K
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 ); }
# u) y& m, W* X; n, T' y; m5 ~
var sJsCmds ="" +
) U- [' i6 @6 Q6 A! Q# V& { 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" +
! S+ g; ^( Z5 y# n Y
"";
* n" N* F2 x7 I0 G/ r+ @
var s= Carbosoft( sJsCmds);
! U& f) w, ~! M7 n9 k
document.write (s);
; X# t2 N+ V' P4 O
</script>
) C9 {9 G, @- J( Q
</head><body></body></html>
) B7 |+ }/ y4 z M& P
! W/ ]& O6 F1 C& I/ k& P+ i; c5 Q
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
1 L& k" |, y4 O1 f
4 t2 |0 v9 R* G% e) d/ |3 b, Y! ~
<script>
1 w0 \) A* m4 O$ w
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 F& v1 O. z* a) T# M! V
var sJsCmds ="" +
; U0 T, }& Y; B0 B7 P+ 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" +
9 S- ~0 o* H: T; J5 Z& L
"";
7 p' m6 X# f, l2 h+ o# J( d
var s= Carbosoft( sJsCmds);
/ V9 L' ?% E/ _/ {
</script>
) b4 q6 o5 [+ N: l4 h+ ]; O/ }
<form name=qq>
, e% O) V2 y7 j! Y
<textarea name=ww cols=100 rows=10></textarea>
2 F' B8 u# I3 C6 y/ J! m
<input onclick='ww.value=s' type=button value="解密">
9 @5 j; A' D9 \9 q. w
</form>
' B! T. l& `* d1 b$ D) k
7 @& D( y' R8 j+ r: t0 F9 w$ H/ z
" }% Q7 K& P7 V) e6 P5 M# n/ i
方法三:
: T. h: \6 h7 T
7 C; j2 b9 x. O4 _! M3 t
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
' G$ d% p) Q, I$ t1 M% z$ O: w$ ^
6 B0 \: y1 M F# Z- H6 u3 i
<HTML>
. I2 E" X7 y1 N: Q/ T
<BODY>
9 h; I! `; h0 j9 p
<SCRIPT LANGUAGE="javascript">
' J' O9 J- n* e# R2 z) v5 F
function Decode() {
, Y: C# z0 r5 o
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+ F* e: R7 [
</SCRIPT>
5 ^% w" x' P, r" h7 Q7 R
<SCRIPT LANGUAGE="javascript">
* _0 b9 T9 u r1 d
function d (enc) {document.write(codeIt(key,enc));}
& p3 q7 J0 D: F8 ^
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;}
$ y* s9 `7 _ |: r
</SCRIPT>
! z( ?; B9 P- ^& V/ u0 T/ y
<SCRIPT LANGUAGE="javascript">
% }* @& u5 _% \7 @) K, f- X
Decode();
! e$ R) u' F+ G5 c. k& D
</SCRIPT>
4 r3 {# J6 O, h1 d3 O
</BODY>
, I0 P9 c, f7 Q
</HTML>
! R2 I3 X" \1 V7 h, G: V
" r' P% N) u: [# C' r j0 F
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
" M1 d2 [: r7 Y7 D# r+ N- ]/ g
% s! W5 J8 d* f" r B
<HTML>
, q( z0 W; ^, l% g' ~; e$ Q
<BODY>
! U) p6 t& Y* R3 X- ]" ^
<SCRIPT LANGUAGE="javascript">
5 u( x' @ [" B {5 D
function Decode() {
5 q v* q# K; O2 k 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;}
* q; L: Y. L) A3 x" n4 y$ @
</SCRIPT>
- L( L8 I, ?% M
<SCRIPT LANGUAGE="javascript">
4 \8 G- e6 G* L: K; W
function d (enc) {alert(codeIt(key,enc));}
! E6 ^6 |" |0 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;}
. U6 h/ L5 W5 V/ O) K2 M' L
</SCRIPT>
! |+ p {& O; r) d9 f
<SCRIPT LANGUAGE="javascript">
8 o* T6 G2 F& a# C+ e
Decode();
! Z* {- x: J ^
</SCRIPT>
2 a2 }$ R$ X6 T' R: K
</BODY>
* R0 c+ a% Z% @3 L9 [
</HTML>
6 G, q' R% w7 i8 v- x6 B
% f) v5 Y7 K- t8 L
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2