标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
. L: z7 b/ j1 [* {! S2 g
0 o0 k$ Z' ? E$ K( R# l5 m
* b) ], e* J, c7 T) e+ P: n) n2 d) X
方法一:
! Y% x- b, x" \+ O4 n5 `8 M: `! B
. F* p. j5 X1 C; S! r5 A& j: G" t C
5 B6 A; X0 x& |# K9 `
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
4 @: ?2 `7 o2 l' E; H& Q8 c8 k
' G8 N- F- z3 U% |
<HTML>
( H2 h8 j% U% F+ Q- H" n
<SCRIPT LANGUAGE="javascript">
5 A( y* r; y+ j4 ?
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"
0 q' A- |! R- D- [+ N" k. n
var NewWords;
! c: L" Z- r/ m K1 q/ t( J
NewWords = unescape(Words);
8 ?/ x, X, G% X" z
document.write(NewWords)
. D7 ^/ `8 n; x7 W9 X$ w5 A
</SCRIPT>
+ H% r2 a+ |0 n
<BODY>
' D9 g4 ~9 J9 m) m- r& b/ B- w
</BODY>
0 a Y: V; \9 F. L
</HTML>
) |5 S2 x2 U+ Q8 ?: d# T, k
( [& C8 S% r5 u; `6 [! x. `
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
- c3 R7 `2 @: X6 ]) ~4 Z9 [
2 i% H* v8 H3 B# d, M$ e z
<HTML><SCRIPT LANGUAGE="javascript">
. }& a3 Z* _; _+ [: u1 f! 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"
. j" D _. R! C0 U
var NewWords;
6 ~& u9 E; U* l |; @7 C7 l
NewWords = unescape(Words);
% ?2 k4 m8 k3 X6 _# V' E, |
NewWords=NewWords.toString();
" B) ]5 q, B8 P5 e+ _
function password(){
1 W) Z/ {5 S' ~. Q
document.pw.txtpw.value=NewWords;
) h" x3 c+ \$ n# F" ?0 f7 N1 R. Y
}
! _3 s: a. ]- Q$ }, M1 A+ I
</SCRIPT>
3 F* B! U- _% u. N! o
<BODY>
0 F* b. u/ Y i0 H6 w
<form name=pw>
_' s; Q( U+ w4 Z
<input type=button onclick="password()" value="解密">
+ ]' v( ?4 s9 P; p$ f" B
<br>
" ?; r7 E& D' y2 T6 I" L
<textarea name="txtpw" cols="100" rows="100"></textarea>
% I# b0 U S8 o- j: }& F$ W; @
</form>
, r, w" j5 ]7 z" r- E4 v1 m
</BODY>
7 i# u9 E: R5 _! z
</HTML>
9 s, b* R$ \5 ~9 c$ O+ ]
% H/ z ]7 _' M! `: T
方法二:
8 Z! o( W1 E/ }
" Q, s+ m1 f4 \6 r& V3 ]3 X
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
5 b# h' l4 ~( r9 d4 `
# u: X" y, g0 U9 k. f; Z
<html><head><script>
9 N% S: d4 u5 w* t5 @
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 ); }
! W1 o- I7 @4 W# I7 Y
var sJsCmds ="" +
* `9 P. v. ?. ]3 M0 h' p' ~2 i
"?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 k' \, k6 N8 v' S3 e2 W2 V
"";
* m" h8 v/ a, b0 }1 b2 \+ O
var s= Carbosoft( sJsCmds);
; a) H. g. V6 k' U+ Z/ l5 s
document.write (s);
& d4 w$ M6 q9 s V2 R
</script>
9 u& k* Z% ?: ?0 o/ C0 ]) Z" ` L2 ^
</head><body></body></html>
( v9 \- P9 Q [. A1 s2 T* J
1 K8 U! e! f1 i6 Z& p9 Z0 w
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
( O/ z) L) F" b: h: }# g
, p& q. c0 t+ w* i4 h+ z
<script>
( j- K* ]# X7 T& j6 o0 Y
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 ); }
2 [8 C% Y- P- U. ^$ s8 Z
var sJsCmds ="" +
4 c& T4 R& B9 p: q; F
"?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" +
2 R* l( F# y6 e9 b
"";
/ G9 ^4 ^( G# y- x) Y# L' e: W
var s= Carbosoft( sJsCmds);
% |! O9 b; M( a
</script>
) g- W' b7 M) G' u
<form name=qq>
3 o; c; }, _& U1 b, M' V
<textarea name=ww cols=100 rows=10></textarea>
) m- T3 m3 ^. a C }0 B
<input onclick='ww.value=s' type=button value="解密">
6 x }% ~5 X2 f0 Z" k8 W0 ]3 a
</form>
' {4 O" M% O0 B! {6 |0 {
1 d# s; p- X) v9 ? C/ a
$ ]6 g# z7 c6 Y% s1 \
方法三:
( C. o7 u( Q+ ~0 b7 ]
6 ]. l% H7 t& S9 a; n
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
) b. l5 ?, W. A
5 ~/ M6 h" F! s" }2 S
<HTML>
; ?, `8 d9 A# p% \
<BODY>
2 l O5 }; C9 u. s! G6 Q5 x/ B9 T
<SCRIPT LANGUAGE="javascript">
8 ^* Q5 j1 `4 M5 W
function Decode() {
# X/ t' V5 \$ `/ 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;}
8 p w; A+ U3 M$ S9 `0 q
</SCRIPT>
& Z3 |; K+ z1 T- p' \
<SCRIPT LANGUAGE="javascript">
( v4 X& Q7 \! g' R, o
function d (enc) {document.write(codeIt(key,enc));}
5 y7 l9 ]9 r8 L8 \1 K' }. _
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;}
- b% c3 t, {& S' T
</SCRIPT>
: j7 C5 k# v9 p( _1 W2 V- f
<SCRIPT LANGUAGE="javascript">
1 z2 @ k! o C. G- I, h- r
Decode();
6 C m: ]& F" _0 h3 F! h5 ~
</SCRIPT>
' k) w# r1 U7 ?$ k' ?* i. J
</BODY>
# r. E2 t( m" ?: \( A" I( w8 J
</HTML>
3 u0 a& K, B6 ]6 g. @
( w0 Z+ O# p( ?4 `4 H7 I. s" _
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
# r- l) q3 h( }0 _9 y9 o- t- i7 D
3 l5 }& d S% `
<HTML>
$ L H, z0 j) F) z5 P+ k
<BODY>
* G; l0 r& S' h( s: |3 X' R
<SCRIPT LANGUAGE="javascript">
9 S& o1 e$ e9 Q1 n6 e0 H; V
function Decode() {
& K$ ?; T9 g0 z( m. K* I5 a' X' Y* 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;}
( t: u. j5 P$ _2 j2 {
</SCRIPT>
, e8 w' G! o9 v( {
<SCRIPT LANGUAGE="javascript">
: Y; V% D( m# |% W# H( p+ G& d8 D
function d (enc) {alert(codeIt(key,enc));}
8 f; Q- \" i5 e
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;}
* B. P) G8 d& H/ V+ q" t
</SCRIPT>
% v# T3 s r& n% y
<SCRIPT LANGUAGE="javascript">
! w# Q( T6 E$ V. Y6 A
Decode();
9 U7 m; N/ f8 a6 @
</SCRIPT>
4 O2 T/ l" ]+ A2 Y. b% ?
</BODY>
. r0 Z7 M8 N) l4 |) G& w, v7 Y6 \
</HTML>
% a- i2 ^. W3 u+ }. s# l7 U
; t) W" R' E' T+ ~$ A/ ~0 U
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2