返回列表 发帖

网页制作中页面的加密和破解

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
: U  {+ w& S" s! t1 T/ T' H
) f* c! U, A! |4 h. M( a+ a3 x  ^  b& v
方法一:6 V" U1 g" i  M

( h( q6 b" s& ?5 O' e* L
" Y* |( D# g$ ]  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
% u/ u9 ^7 q& }- D6 ?( m5 K+ ^" L7 U
<HTML>9 O5 U5 R! }  L- |# j/ I
<SCRIPT LANGUAGE="javascript">
" R, V: G5 r8 S' Bvar 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"  I9 ^' F" G3 t
var NewWords;
& x- b7 x- A2 c' sNewWords = unescape(Words);% f- Q0 }) K7 Z7 _% b- y
document.write(NewWords)
/ O* _  w& C4 f, V3 x4 t</SCRIPT>
, B; W( K) [1 G/ B# i! P* L: y6 \<BODY>! s( v" K: o6 a- p
</BODY>
% o, {: N, W7 x" O, T. K</HTML>5 |  _. m* r; F& P8 j6 E' u; d

7 b; X; x1 O2 n; O: w* d  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
; J4 \5 l7 P$ b+ d# ^/ O9 f' ?" k. d, x% T6 V
<HTML><SCRIPT LANGUAGE="javascript">
$ @0 T* p0 L1 @" X) L6 @  a) uvar 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"" B: R! j- E  a4 ?1 j
var NewWords;8 Y0 I: [- p- S5 I$ Z
NewWords = unescape(Words);5 ?) a' u' y9 z# M8 a! f) y5 p
NewWords=NewWords.toString();" v% J  O! B+ ^7 h6 b) }+ V9 v
function password(){
$ a$ o1 D; V! J% c$ {$ X/ q0 ?document.pw.txtpw.value=NewWords;7 Y1 V) J4 B( |" d! L
}
0 m; B/ j; i( `- J2 t! p3 a</SCRIPT>5 y8 X, J" S7 }7 q
<BODY>
' f4 u7 n1 u+ _0 i5 i  u* _; D, [<form name=pw>
- A. i4 W: ^" ]/ I* r  A<input type=button onclick="password()" value="解密">
! w1 V9 r) p  \% g8 X$ Z$ I9 W6 e- `<br>8 q! `8 d! }# k' O) h
<textarea name="txtpw" cols="100" rows="100"></textarea>' w  _$ I; {3 Z5 @# L# z7 Y
</form>
: ]) ^* ~+ L; W  y! X8 G: O</BODY># M  N5 Z9 Z* @8 m) q* X
</HTML>
& T# S( U1 x: Q
3 u4 l- {; @8 b方法二:
$ q) o- ?4 j% V3 s3 w% P7 K4 b6 E' ]# l3 ~
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:  b, y' g. P, b2 b. K
" \4 x( w7 t: d* ^% M! L
<html><head><script>
2 [3 Z1 H1 `$ f+ Sfunction 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 l0 e! ?* X. @$ v8 U9 Pvar sJsCmds ="" +/ @% L0 M% g0 O: }/ G: q$ G
"?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" +
7 {5 M5 y4 T! Y"";4 n6 G' i! ^8 }8 D" i! Y( l; D
var s= Carbosoft( sJsCmds);
, a' I( U/ n' y: q4 {* bdocument.write (s);/ a, j) G5 S  c
</script>. O, \* k$ K! e  U
</head><body></body></html>* b, V* S: Q5 k* D' r: y' l

" t. i7 Z) `2 C  @4 O. ]  g5 B  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
1 b, l7 |6 W/ K* u' V4 E  S# c/ T
5 g: B5 `0 o# ^3 \) `1 Z" `<script>
$ z& }$ a; ?2 D$ J3 L2 Hfunction 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 ); }8 |8 E* [/ |% e2 Q* ~0 j
var sJsCmds ="" +
. O* H' y! A+ f+ V5 f2 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" +* T, x9 o5 W1 P+ s/ s9 S
"";! y$ [+ t9 D4 Q; C. f' J" M3 N
var s= Carbosoft( sJsCmds);
9 b$ h, c. }( X; U0 e) T</script>
8 P4 u) [% ~" J<form name=qq>
9 L7 G+ b( r' B# K: q<textarea name=ww cols=100 rows=10></textarea>
: y$ {8 N) q7 S7 B<input onclick='ww.value=s' type=button value="解密">3 e( I3 r3 U# m/ u
</form>+ q' |$ Z  z# S0 x$ S) i$ h

* ]- Y5 w8 ]1 p9 w9 n; m) B7 [' R" g, l4 L0 d
方法三:( y. J) k  |4 C& l9 y

1 {  r/ T# T3 d  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:! _% I& [, L# X6 D! F8 k: B
0 K6 X' c5 p2 d6 x  B
<HTML>
% J- n/ x# p! ?) R/ x# v' P<BODY>- Y0 h0 x+ Z6 `
<SCRIPT LANGUAGE="javascript">
# C& {& J/ ?4 E- P7 w9 y8 ^' ~function Decode() {8 P$ H3 C4 ~+ ?( f; b/ x: B
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;}3 I  W, j& R( H: I/ E) K
</SCRIPT>0 E$ u% b+ R( b! [' ~; @2 r
<SCRIPT LANGUAGE="javascript"># Q. k0 A/ M/ [. _' k  x  e
function d (enc) {document.write(codeIt(key,enc));}; [) y; J- J' ]5 c4 H7 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;}
  I0 _: m7 |0 N9 ~</SCRIPT>
0 O4 J' q* h. s) }$ B; W<SCRIPT LANGUAGE="javascript">
# ]! z& P4 Z: Z, y1 n  y4 S8 u* ZDecode();, W; n" G% y" i+ N
</SCRIPT>
- Q  b- m0 f! \; M# J</BODY>; @" d4 q$ G, a- M+ R
</HTML>7 ^$ j* V# A  N* F$ z1 C; t$ C
$ F9 d/ h0 z4 `) A7 _1 ^" v% [
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:# A6 o: w% n2 A$ l2 e

( C' p9 O( q6 |1 U9 ~( A2 T% D<HTML>
3 B) J" B3 J2 w- T, c! v3 Q- o5 L( n<BODY>
" B8 j/ j  P; m<SCRIPT LANGUAGE="javascript">6 U) [5 E+ S, ^
function Decode() {
& l9 `5 R. f* N1 k4 Z3 Yd("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;}6 F" W$ p' A3 s5 `" k
</SCRIPT>2 X/ N& `/ K' [
<SCRIPT LANGUAGE="javascript">( }/ h! [4 e" T  @
function d (enc) {alert(codeIt(key,enc));}7 B% [( t: U" W3 Z% u/ 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;}) \6 P* E1 L2 {
</SCRIPT>6 |* H. ]+ I' D) [9 U
<SCRIPT LANGUAGE="javascript"># ~7 t: W+ ?) v" W8 }: H
Decode();
1 b* i7 F5 Y2 a/ w8 d4 C0 Q</SCRIPT>7 y  m& r# H8 \% W+ j, H8 P$ ~2 L
</BODY>
' t) |9 A" o1 Q* [$ A' F</HTML>
; T2 k! \8 F( A
2 M3 e7 P9 a: H9 Q# V/ q, S3 c+ W3 M  哈哈!!:=)是不是很精彩!!

返回列表
【捌玖网络】已经运行: