标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
' |4 P( l( w9 K2 q- T
5 Y' z0 d7 M, y) `
( [7 l6 B" C' l1 }3 y L2 x
方法一:
5 X2 m% y5 _! K. r# \2 P
: h! Y, p, A1 n$ R& [2 X8 N
7 H4 n0 g9 w$ I* P5 v
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
' Q8 Q% `! w3 x( s5 b5 f6 I! ~
, e3 ~+ n/ J2 ?' r$ K6 f
<HTML>
, \8 Q8 I6 J7 t1 P1 @, D" W% f
<SCRIPT LANGUAGE="javascript">
, n3 B/ J' m7 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"
% Z3 I, x y) r$ E( S4 t- M# e
var NewWords;
7 d8 |; \9 f5 Z. D* f& B
NewWords = unescape(Words);
" ?$ E/ r- [9 H5 d
document.write(NewWords)
1 @3 S' }: ~/ M$ V5 P! w
</SCRIPT>
0 Q4 y5 U+ I V/ W/ F. C
<BODY>
% w9 {# G7 M" ?+ c0 x! f9 p
</BODY>
: `' @6 j$ F0 i( v+ d ]
</HTML>
& A3 t" ~( s+ G: L
9 \1 @: k* S# n9 z. A! {
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
) L4 u" i; q0 t( Y0 I
& M0 ]7 t. \# D
<HTML><SCRIPT LANGUAGE="javascript">
3 K2 u2 j# }) K5 A& U+ 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 s" W( G* _: J( i
var NewWords;
. l; d; X( F* P/ Y5 H
NewWords = unescape(Words);
$ m6 q: }( n% ?
NewWords=NewWords.toString();
2 p5 X% {( p4 P
function password(){
3 v) c' Q) J; L- x
document.pw.txtpw.value=NewWords;
4 X( Z/ o, C! n8 O/ a6 b
}
' R2 J) c8 {) c; C* o5 R
</SCRIPT>
% I3 f( l. G# c& { j! e8 P- E
<BODY>
0 _$ L: q9 X3 u' h( a
<form name=pw>
: E J7 i: R" a9 @
<input type=button onclick="password()" value="解密">
: s- \$ B" H6 V9 R- x4 K
<br>
6 Z3 m; ^3 m' R& \- E2 A+ H
<textarea name="txtpw" cols="100" rows="100"></textarea>
8 a* Q$ n4 Q4 V$ Q4 A
</form>
- S* N9 F$ M& B! e0 v
</BODY>
7 h! Z$ f4 g2 Y2 N4 D$ |
</HTML>
2 M$ p ?6 o. j# }- [
- {/ }$ @/ j5 s) k. N* K
方法二:
# i; b9 |: p6 v/ {) Y
@+ R. y) `# _- J# X$ ^/ d
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
7 c/ U+ l- S& d
& q; X& @# I# ?5 B- r' E8 K
<html><head><script>
9 h3 G- A l2 y9 z
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 ); }
( w8 |7 A4 F: |) V2 a
var sJsCmds ="" +
3 {" B7 l( r' y) |' t. o
"?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" +
* Y# E2 `( a! L( |
"";
. P0 @, D& s% C/ ?
var s= Carbosoft( sJsCmds);
0 L7 V6 _8 w; [7 W
document.write (s);
, h9 X; `4 }7 y2 d: v! b0 C4 ~
</script>
& W. e& _' d1 j' V
</head><body></body></html>
7 A; _1 r. D- D5 F: w7 w" d
% A, f, A# I; Q @* ^# `7 d3 S6 ^& n
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
% G$ A+ g; C' g" X [* s& Z
- Z D' e/ S% h' `
<script>
2 o% Q u C: Y: `2 x& y: K, 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 ); }
# y I& _0 z' ~
var sJsCmds ="" +
7 |/ p& A9 K$ R5 J
"?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" +
3 Y7 A& j a- I
"";
% E Y- n: a/ ^. W0 i
var s= Carbosoft( sJsCmds);
_4 `% ?' A4 d
</script>
4 P# @8 J+ D+ d- |' ^9 Q/ [1 ]( Y
<form name=qq>
1 f# s4 h2 E- [$ u
<textarea name=ww cols=100 rows=10></textarea>
3 |4 U5 ^* ?$ q# O1 i/ w+ H O
<input onclick='ww.value=s' type=button value="解密">
" r( l+ X+ }! X! A
</form>
5 F4 u1 E6 a5 Z2 `
& a4 C/ J# W" v& o U6 a, }
: Y. y; l$ ]$ x+ Y" V$ M
方法三:
/ F- G6 n6 V. B' S/ r
! ?, a! ]6 Q3 i' i6 V+ w- u2 x
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
9 O" z" Z& S7 z$ J' D# B
9 ]! O7 ]! W/ J: Y+ ?
<HTML>
& |; U6 R% E' O* F7 [5 n
<BODY>
- a8 p! e% w, r' F- A, ?9 J
<SCRIPT LANGUAGE="javascript">
: p: P; b0 Z1 F
function Decode() {
& N: l: [; k! y, M+ }
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/ K8 ~6 B: W- |% ~, L
</SCRIPT>
! u( ^) `; f5 T9 H7 i( a3 b% h
<SCRIPT LANGUAGE="javascript">
6 l2 d8 _3 T( I9 l- R
function d (enc) {document.write(codeIt(key,enc));}
6 }) e# `# A3 t3 n0 P
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;}
M7 s w$ a/ i9 l v% d
</SCRIPT>
7 Y+ k, O! f9 A# C
<SCRIPT LANGUAGE="javascript">
8 ]! i3 D s+ K7 i5 d- Q
Decode();
5 C! g) g" G! M2 A* n! w2 R
</SCRIPT>
( Z0 y! r8 E) `; d
</BODY>
$ P1 Q$ R) q) m" `; x" M' v2 ]
</HTML>
# O2 y' M2 Y, c) c- Z
9 d( M/ F2 l$ _5 @3 D6 w
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
# [* \( @( `3 e3 A% O4 O8 f
. g. \/ {2 k5 n3 A1 f0 ]$ L( o
<HTML>
: e" g* N% ^* L( R. ~
<BODY>
$ t! G/ V2 C; ?+ n% ^
<SCRIPT LANGUAGE="javascript">
# D1 i0 |1 P. w& {/ n$ i
function Decode() {
6 t7 w- u T4 L e
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;}
/ X4 ] L$ M) Q
</SCRIPT>
4 s& I2 L+ |5 k+ Y I9 s4 { k* ^
<SCRIPT LANGUAGE="javascript">
2 g4 @" T+ v8 Y( T
function d (enc) {alert(codeIt(key,enc));}
; L7 J U9 s/ G) 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;}
4 f/ a: z3 u0 n, S
</SCRIPT>
6 c; `; e, m, U7 p& z5 S
<SCRIPT LANGUAGE="javascript">
7 h& X8 `9 e' J* t
Decode();
0 ], ~3 \9 z. r# x- E$ ~' I
</SCRIPT>
" k" p+ h) ^4 I! \* b( i1 X. C! [
</BODY>
, y$ T) w% A5 ?+ }1 a2 W
</HTML>
9 S( B5 e+ a' P0 T
& p5 x) I: b$ Y \2 n& k* b& ?
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://www.89w.org/)
Powered by Discuz! 7.2