返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
" u1 w) [- O8 S- P1 s- p6 ?, m
$ Y! w+ e  h" c1 Z6 t" z) \# w7 e' n/ l1 }0 ?# n) E3 v; e# o6 U
方法一:
$ C* p! P( o1 ?# O7 [. z* u# {
' L/ D6 f& w* c6 Y) V5 E. F0 w9 a- V1 q! @4 h. l8 @9 p$ I4 M: \
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:: x/ A1 g: y5 Z) O# H; J. {

% l" @3 \% c# Q' e' Q# u6 I<HTML>
. G% M/ g; Q( H  g6 \<SCRIPT LANGUAGE="javascript">" b. q$ ~  _5 z: v- y7 _# C2 v
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"
: f7 l! h* j: `$ O3 e+ Jvar NewWords;' i0 z: x( l6 ~7 V3 S( B$ M2 R
NewWords = unescape(Words);
* h* E0 t: L% Y2 sdocument.write(NewWords)
3 ]* c8 R, A# T5 ^</SCRIPT>
: W, c8 r7 e6 b3 O& v; u1 `<BODY>7 M" Y7 J: `" h% X
</BODY>8 ~8 s( d! y0 O# N; u
</HTML>
' l) i- j# G7 ]1 L: w, h$ ~4 Z: Q! }( e* y1 Y7 O7 V
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:+ i8 Q$ u) P1 p  `$ p. D

$ @- `5 W) `7 K- f5 I" d<HTML><SCRIPT LANGUAGE="javascript">
, _' d, w0 i9 |+ f& r2 I1 r) pvar 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"  g0 u6 _$ `2 c6 U6 x2 B: m& b2 X
var NewWords;/ T& ~7 O6 h: s2 @
NewWords = unescape(Words);7 X" {+ G9 f7 T2 o, R
NewWords=NewWords.toString();* ^: S9 D4 M1 M, y4 F/ ~, t
function password(){/ p/ H1 o) W0 B  u+ K
document.pw.txtpw.value=NewWords;
$ [" [9 }7 p  M% M( b# N}2 n; ^; d& F/ B, c% \' g
</SCRIPT>3 c! s5 z5 h6 [: a/ i5 U. R
<BODY>
4 {5 Z4 v* Y. g' Y$ W% l/ |- L$ [<form name=pw>
. ~9 w, P/ B  y8 ^<input type=button onclick="password()" value="解密">
, @( ^% D; X) @. K<br>2 K. ~2 o+ i$ K0 V; T' k
<textarea name="txtpw" cols="100" rows="100"></textarea>
, M* P! v, b( n+ `</form>
/ E2 d7 q- S: ?1 [% V9 x  X9 _</BODY>7 z) s% I5 |* T, |, N7 v
</HTML>  J* Z3 }  m$ f5 ^3 u! ?

: o0 _" E9 U3 y" d$ W/ C方法二:
  f6 {* h& S5 k3 w2 h% @; ]. y9 C, K: i4 _
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
. K: a3 r1 C9 u0 U. w$ P( Z% V, t2 C3 F" Y
<html><head><script>" M2 m; r2 A' X# S7 m: R
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 ); }
1 v! E9 [7 T  _, H+ ]. f  Q% ~var sJsCmds ="" +
1 {+ E( m9 q2 D"?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 y1 M$ [! A! |5 s" i8 _
"";: y! B% m9 r! s, d1 H
var s= Carbosoft( sJsCmds);
' o' S* K! d  d' J( d2 a) j9 z: Idocument.write (s);+ w& D; j% L; j& A+ P8 }' g# w$ b; G
</script>
* ~0 R3 h* a1 R7 C9 }0 n! E+ O+ a</head><body></body></html>5 J2 V3 Q4 m% c/ }% Y$ Z5 A* N7 w
2 b3 G, m, v# ^8 I
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:, Y; y0 e9 h4 Y) b* R8 h

/ }& A. V( Y2 s, r+ p  C7 C<script>/ S& H+ ~7 P( Q* Q4 R
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 ); }' T4 o& t# W# i. \% Z. ?( l
var sJsCmds ="" +
. W8 w8 o$ @3 X9 T"?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" +, q8 E% b) ], r
"";& g7 t4 \: a: p; u7 S. ]
var s= Carbosoft( sJsCmds);- C! O" B/ @' I) q+ }: Z
</script>$ K, y/ W0 i: G+ l7 F+ T- S9 a) P' G
<form name=qq>
3 x: j7 d$ E& i<textarea name=ww cols=100 rows=10></textarea>
& o4 l7 ^8 {( Z# u& W- f3 Z<input onclick='ww.value=s' type=button value="解密">4 F. s# e( S/ p7 i9 y& N7 P
</form>4 Y0 M8 }% m3 V/ E6 y

5 L6 J' }, w1 _( Q! I# ~9 k
8 n9 o( E& n. {) k# N$ [方法三:( C4 }7 O) x) R# h5 D; R

2 U6 E/ }; k* l) B7 X9 m  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:( l" O- d3 R: c& T2 R

! q' [, N' ~2 w" a: a0 C9 ^$ J<HTML>5 V5 R$ C( \9 G9 l
<BODY>
! C2 ]6 ^6 n( x: u/ ^  ^) _  @<SCRIPT LANGUAGE="javascript">
( C& n& g1 m' N% |function Decode() {
% b4 `$ t) v' Y; 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;}) t/ r& d) T4 d
</SCRIPT>' _2 l3 ^" h! M& b
<SCRIPT LANGUAGE="javascript">, l; O% C' ~& I5 z; w
function d (enc) {document.write(codeIt(key,enc));}
* z8 Y+ I( J# N& M1 o" P4 @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;}, M) a9 b5 R* o& V# W; Q( U! @
</SCRIPT>
- g' A4 Q+ A" V5 b<SCRIPT LANGUAGE="javascript">( U! @  s. V" U6 x
Decode();0 @5 Q6 T! I, y# f. k
</SCRIPT>8 T8 T$ t- f8 P  g+ }
</BODY>
7 a$ Q) O* B1 p( _- H</HTML>* w5 n0 H0 M, p1 l7 X+ y
, ~3 G% T0 o8 ~$ H" m- T( E' Q1 l
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
3 e1 `/ \3 P( u$ o" [) o6 T8 R; R, m( W
<HTML>
& F, x5 O' u5 B4 d2 |- j0 l<BODY>' G/ R8 p4 X4 W+ i8 e" K, Z
<SCRIPT LANGUAGE="javascript">) t8 Q- H1 S7 N' y6 `4 U6 Z
function Decode() {
8 \, }6 a; b: ^; V* J. V/ ~7 Nd("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;}
  Y! w7 z+ U  C</SCRIPT>. {) S( v0 }# F$ |: D# o
<SCRIPT LANGUAGE="javascript">
2 G! t  R. y2 q2 X! ]! ~7 A) O3 |. Vfunction d (enc) {alert(codeIt(key,enc));}
2 S  D- g  H8 z5 D9 o4 Nvar 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;}
0 K- D$ x1 V: a4 x0 Q1 h7 F</SCRIPT>
0 u  ?. C) w4 q& T3 c' |6 y- D( F<SCRIPT LANGUAGE="javascript">9 l6 a# q- q, ?
Decode();4 [8 R% g6 H$ U" N2 z
</SCRIPT>- x; b3 @$ q1 H4 j4 q2 G
</BODY>7 I/ i* y# }) ^/ J0 J+ R5 V
</HTML>, v8 F) |% c7 u: w3 N9 g) }
! o. j' C# O( t8 E
  哈哈!!:=)是不是很精彩!!

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