标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
( z% u. z1 K6 q6 I" ]( O
* g2 f+ \5 D4 r, M1 w
( v& c+ z' d! v( ~- G
方法一:
8 n! `# T' y, n& g$ j) L& R
% G% } F- B: K1 s' _/ n
* D* }: m, z6 A; d& N X, g4 ?# v
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
% o# J' C2 k) X) D3 e: l
; g, a. K8 h7 D% N/ K/ |7 J2 A
<HTML>
1 P! j6 }# R; C- y. u6 I- M
<SCRIPT LANGUAGE="javascript">
7 U6 Q: \1 O( V4 m5 e) l
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"
* I4 b- v/ |* U: [9 d" u$ p [
var NewWords;
/ b% `5 Z/ _9 V
NewWords = unescape(Words);
) Q. {$ d2 S* h+ ~7 Q. U5 l
document.write(NewWords)
/ m: y% `& f$ n# ?5 a
</SCRIPT>
- U9 S( [4 ^. T% ?
<BODY>
$ P& D0 F/ b/ X7 z2 G! ~
</BODY>
, h+ o# T* f- @2 }5 X
</HTML>
6 Q! `# m' e' j2 G0 S% s' H! F1 }4 X
: U" T7 X0 p% j! f' M; [
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
E( g I( O1 i& n4 R2 P
( w/ ]' P( y8 L7 d4 B
<HTML><SCRIPT LANGUAGE="javascript">
* j4 t3 b! U6 U
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"
% J1 b: W' r# d' F* h. @! ^
var NewWords;
% b/ v# P2 A: D# n
NewWords = unescape(Words);
: c4 k7 I" Q) N; O
NewWords=NewWords.toString();
: M; p# I W$ v. u% D" p) U0 O
function password(){
& T, ^$ ^6 ^0 z |* f
document.pw.txtpw.value=NewWords;
! p( q3 v0 h2 @3 J; `
}
+ [# u) z8 G6 [2 O8 O
</SCRIPT>
L6 \; o5 J3 r# K: N. {
<BODY>
6 e+ h0 I5 H% r' D: O" S2 C
<form name=pw>
( M. q8 [9 N5 Z) v) V
<input type=button onclick="password()" value="解密">
I9 i2 m6 \/ S7 s' x2 W
<br>
C1 @: q6 l# d6 U( O# n3 T' n
<textarea name="txtpw" cols="100" rows="100"></textarea>
8 Z& h* ?$ ~# }$ p
</form>
1 ]' H* |1 ~4 A# n# F; E4 h+ p- d
</BODY>
8 f! o: f) O* g" g5 \
</HTML>
8 N3 d" A6 e$ z& z0 x. i
- G7 L+ S/ k" i- L- m0 E
方法二:
+ ]' c4 ]/ o, P( c' x- t
& q/ L9 }% h3 D
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
; }5 c7 [& _' p8 U0 I
3 |! G @8 n+ ]( n( F9 h8 `
<html><head><script>
, I9 t" f, F" Q, ]2 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 ); }
# p8 X5 Q& y. Y
var sJsCmds ="" +
8 `. l7 M. C$ v8 |
"?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" +
" G" c7 T3 S2 n- E! w4 r3 m; E, V
"";
1 \9 v' o, @" H: a1 a
var s= Carbosoft( sJsCmds);
6 K6 W% c: h0 R$ v% I
document.write (s);
8 l I* [' k, \- K
</script>
% P. y0 X- v- K0 M# F
</head><body></body></html>
4 [* v: d0 H1 A
$ A" ~: x+ f- P. h4 g# C+ G) m
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
6 Q, ]4 ^. T4 l+ ?/ O- F% U% z1 A$ F
' M" E( e/ f2 T7 p, v/ n& J% q% @, z
<script>
( b. U2 Y; j7 s* S4 V \, i* @
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 ); }
" }, p, |! W6 @( L* T
var sJsCmds ="" +
! ~) n0 ?8 ]0 V
"?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" +
5 ] t5 s1 l8 m5 R5 |" u
"";
( f0 `' y8 x$ y8 n z/ Q/ t
var s= Carbosoft( sJsCmds);
. L) z8 p: Y' t
</script>
7 I( E% @: `; ^1 g
<form name=qq>
w' D* M [& f
<textarea name=ww cols=100 rows=10></textarea>
/ {) H7 w& [1 q7 h5 z# i
<input onclick='ww.value=s' type=button value="解密">
7 V+ M% M0 s5 k7 C9 o- J7 S" v
</form>
1 p* G( P7 A1 l5 N
1 s8 ?* \$ X# [; ?
. E4 X7 w" E; X/ |. B
方法三:
5 [; X/ @ J$ i3 |2 p0 N/ J3 J/ j
! g8 z' v( ]/ k% G7 n! T
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
; I* d5 \* m1 B( i
2 f, K. X0 @: M; U
<HTML>
- J1 X2 \7 q) q8 a1 P
<BODY>
. d( e, Y4 }, r; H
<SCRIPT LANGUAGE="javascript">
! s* W- z6 e+ I0 d' s2 w4 J
function Decode() {
% \: c; n; C: a* ^+ h7 s
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 j4 c/ f; u. H2 F# Q1 u. m* @8 x" z
</SCRIPT>
0 E; X6 r3 {: C+ P. B- |
<SCRIPT LANGUAGE="javascript">
2 q, K& R9 F* ]# A& v
function d (enc) {document.write(codeIt(key,enc));}
1 y; K3 l; |6 ]9 U, B9 ~2 p1 x
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 J) j+ \8 z8 L9 _ Z4 ^4 q
</SCRIPT>
( p6 R9 S; y2 S# \+ H
<SCRIPT LANGUAGE="javascript">
, r# y6 e) I( D
Decode();
8 v9 v) q8 w7 A" V
</SCRIPT>
' [0 A" ? Z' T0 \- @
</BODY>
. p( t0 P ?$ ~" {- \ J/ F
</HTML>
- o4 s( Z! J7 Z% O' ]$ z3 A* H
$ A& A3 Y7 g7 s9 R& s
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
# c( C9 y3 Z# L b& J
6 C, D0 S6 n" D! ~
<HTML>
0 q8 n m* N5 q7 I" j# j
<BODY>
7 Z7 Z1 u2 Q/ f- w0 x0 o
<SCRIPT LANGUAGE="javascript">
! B" G9 J2 U! W$ c4 U
function Decode() {
% Z3 O. q8 @) K8 b. a
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;}
0 w* l+ L: h+ x ]& c7 J' j7 F2 G
</SCRIPT>
: S6 p; F$ z7 t
<SCRIPT LANGUAGE="javascript">
+ G4 [! w0 {* l4 |- v; L, Q
function d (enc) {alert(codeIt(key,enc));}
7 `# }/ z0 q5 J( K, W
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% p; a" b& ^
</SCRIPT>
# |# D3 O% f1 c# T w0 t
<SCRIPT LANGUAGE="javascript">
, A5 J. H0 Y6 \- f
Decode();
' S8 w- W- Y8 g2 s
</SCRIPT>
0 D# l2 I8 {1 ~: x
</BODY>
) Z( n2 L; a% ?6 b) U' p
</HTML>
1 t1 q" h+ v2 N, Z9 K
& _ R5 _- o# Z) i
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2