Board logo

标题: 网页制作中页面的加密和破解 [打印本页]

作者: admin    时间: 2008-1-19 23:24     标题: 网页制作中页面的加密和破解

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!8 ^, I# G; u* L5 Q; [+ k' n
5 \7 L, X1 w1 n2 A% e7 ^5 p' R
  T2 \+ v& U# J0 t
方法一:7 V) ~9 U: Y* [2 Q- f

! x( \  w4 l( Q, X* T2 F
! R# n! y8 X( W& {/ p  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
7 U; ]. Z% P( I" x( t3 J& M+ G% c4 e
<HTML>) D" Y8 Q7 C) B# v' N; Y: n
<SCRIPT LANGUAGE="javascript">
& A2 x: M0 a/ qvar 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"
# {5 b% {) Z0 V! M$ x5 {$ O9 Tvar NewWords;
6 {. [- ~# w0 d! |/ eNewWords = unescape(Words);
- M9 D2 \: j0 s7 A* ddocument.write(NewWords)
. }( O. [5 d; |% Z& k! I</SCRIPT># m/ z; v$ Y  U/ k) r2 g' b+ w
<BODY>! F1 n' n6 N; F# Y+ N- S
</BODY>6 h  e/ D7 R  [3 ]9 q. v1 F# r! X
</HTML>% N) u9 x& \" H
  [+ z2 }* s6 y  U' G+ ~
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:* H* N8 c0 b8 t* g3 g1 M+ r

* v& d5 L) ~$ ^8 A! y<HTML><SCRIPT LANGUAGE="javascript">8 t% f# _  f# Z/ _6 R9 t
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 E& u  i2 f! h  u2 i4 Ovar NewWords;
" j- C/ m4 {0 }+ ~  VNewWords = unescape(Words);
! r4 R4 c0 H; ENewWords=NewWords.toString();3 V7 T0 Z! `) P
function password(){5 R* d4 |0 y# C9 _
document.pw.txtpw.value=NewWords;
: Z  Q. D9 x4 v- n& \% u" P* Z}: T3 c- R9 a* S* _' ]9 d/ Y
</SCRIPT>. n2 A9 P1 x4 D; d9 a* S& Z; W
<BODY>
/ M' `8 E9 C% ^: v+ C<form name=pw>( w" Y# e- I; v, U
<input type=button onclick="password()" value="解密">% O( I# O* r& f' I! a# I* I% J
<br>- y; Y, r7 }1 H  J# C# p
<textarea name="txtpw" cols="100" rows="100"></textarea>& y, p- K: m( r! |
</form>
! i: r4 Z5 c7 o</BODY>2 b$ L5 p( [, w. Y0 o/ J8 g
</HTML>4 X( d2 K  j7 Y$ C( |

, L. i1 l  ^; \& E# M8 E3 N7 c7 D方法二:
; r; M' u: K' a# T' z' e2 H% m/ c. ~' b. [# a; N
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:8 U) v; i* ]8 S; o+ g6 ^6 T. r
6 G3 `& R0 l; B* Z
<html><head><script>  D; s8 Z' C, g
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 ); }
7 \7 T2 A, s! x) l( T) Evar sJsCmds ="" +
1 H8 t$ G) G1 C% I& C4 T# Y5 k"?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" +! ~; B7 i/ ]3 e
"";* s( t3 E- f3 m, V
var s= Carbosoft( sJsCmds);
# w) K5 R; k! ^document.write (s);+ w  Y( w2 N+ o9 Z$ L0 E
</script>
0 D6 _/ z/ l" j% |6 ]9 J</head><body></body></html>
: g4 G* K) d. S- y
" I" f/ z5 x1 i) \  [2 J4 N  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:7 q8 k; I7 r# k! ^- @+ t
: A3 v5 e  Y( X2 A0 [8 i) R
<script>2 g; `8 F& ~0 _2 ]
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 ); }
0 m5 W" `3 S* V9 I" y4 _/ }var sJsCmds ="" +! }9 I4 V3 P6 I* M1 x
"?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" +* n+ s' a7 u( \, ?- `* e  R
"";
9 U0 a) ^+ e. j1 kvar s= Carbosoft( sJsCmds);
! K) R) H. Z3 f2 l/ K/ ~, Y</script>
& M/ E1 \) A& o( p  b1 R<form name=qq>! P5 J/ R% r) W3 ~# Y7 j8 |
<textarea name=ww cols=100 rows=10></textarea>) s# G' j/ O9 f1 p% |
<input onclick='ww.value=s' type=button value="解密">+ G: W, ^6 a, e4 G
</form>
9 u1 e' o  v. W; ^2 ^0 m) i3 z
! F) q3 k: b4 _
: a- _* e! u/ h方法三:
1 n4 Z5 G1 H: l: a3 R6 I% j1 m. s2 z+ G; a4 |) J  J
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:: o2 a0 g4 E  h
, j5 m, H( W" T* l2 {- ~  F" G9 F: K
<HTML>
8 P8 W2 c' i, B$ h$ h: K, W# ~0 m<BODY>
; C) C3 h/ v, m$ C3 U% c- ?<SCRIPT LANGUAGE="javascript">  x' K2 f( B' H8 S
function Decode() {
; a  F) h5 @+ e- Y9 u& F( Fd("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;}
+ i4 m* K5 o7 o' ?( K</SCRIPT>
7 g* E; m" K( O* P& Y5 J, E2 |8 a<SCRIPT LANGUAGE="javascript">
( C. d7 ]$ N4 n( S4 c+ dfunction d (enc) {document.write(codeIt(key,enc));}; k1 u: O! _. x* B
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;}3 Q& N7 K9 {; |1 ~. P- i7 c
</SCRIPT>
3 p$ }9 i% ]0 E0 H& i<SCRIPT LANGUAGE="javascript">
, f: T0 y  z1 c% E9 T- z' l2 ~7 V& pDecode();
* K7 q5 L4 x  t  w6 u; p</SCRIPT>
7 z3 R1 Y# ]% m- s</BODY>
: e% l8 Q4 @% e* X6 M, D</HTML>
8 @  t& W. U7 ~* r
0 q& X6 Z7 q! Q. b' A: Y% {1 b  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
! N* o' S; z4 k5 M, J5 O" p  c1 m7 v5 r
<HTML>& b; s( x; P4 k! W" l# H& d  _2 n% E
<BODY>
1 R% [- w4 T1 Z<SCRIPT LANGUAGE="javascript">
# T  ?' G5 I, Q& q4 O/ @3 Bfunction Decode() {
- w# i: F" u4 O- z8 i8 w! W: ~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# _0 C. s8 z3 `' H
</SCRIPT>' `- [4 ?* V( D; W+ Q3 \0 X
<SCRIPT LANGUAGE="javascript">& w8 @) }# L* R4 B2 F; w
function d (enc) {alert(codeIt(key,enc));}
, z) v1 H9 m& Hvar 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) }& G6 P4 @8 V</SCRIPT>
) E: Q4 p5 [: k6 ^9 G<SCRIPT LANGUAGE="javascript">
5 ]9 w- S( C% [" j  ?Decode();1 B; ?& M* o$ I! `' H+ w8 [+ F; @
</SCRIPT>
- C, \7 m% l& w$ @</BODY>! u2 x( U4 P/ Q. N# Z! {" N
</HTML>
0 f7 e& Q- u2 d4 g; W+ w; F) _) q' h! i: ^; Z) ^
  哈哈!!:=)是不是很精彩!!




欢迎光临 捌玖网络工作室 (http://89w.org/) Powered by Discuz! 7.2