返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!# J& o. C% o7 _  e7 ]2 K) ?
" ~& s7 l  W2 E" O& d; H% C

7 Q9 _6 z0 r- y6 c. R: x方法一:' D" K- h3 A: G

1 l& x) j* e7 N4 [: B9 w) `4 |4 p+ N$ L6 y, A' \7 S
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
7 J5 I9 F8 `6 T6 l
" i, l+ w: m3 W% H- U  I3 T0 O& a# c<HTML># S% L$ F, y" d+ B( B2 w+ T' S' R
<SCRIPT LANGUAGE="javascript">
5 k' B; |4 u% P1 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"+ y. Z& R- g0 _: E- T5 |3 R8 @5 R
var NewWords;
" j! f2 ^) {2 G) qNewWords = unescape(Words);
4 F. F& D6 ?7 f. ~0 {7 Ddocument.write(NewWords)( ~$ d: }  @5 m- ~% {
</SCRIPT>8 S# F* c( @0 A7 n4 N  X& J* o- R% N6 m
<BODY>: X5 \  X* |' m% ?6 L
</BODY>+ {( x% R! v/ N4 J0 `
</HTML>
# G) x* [% @. U" X0 X8 O6 Z
5 F4 l  ]6 N0 `9 q( b; ~4 g7 \  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:+ }/ _- G& y; L1 H/ i

) t1 W" X8 d, A  e, G& f; k6 v# x<HTML><SCRIPT LANGUAGE="javascript">8 F5 J0 y! X) `* b
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"
; I; g( r; M6 k) S5 Wvar NewWords;: ?! V( H; [4 W$ b; A' |4 l) {
NewWords = unescape(Words);- E0 @1 T/ g# V
NewWords=NewWords.toString();
) A  E- A4 ?6 Gfunction password(){/ a# V. M, i. `6 o6 }) @0 Y
document.pw.txtpw.value=NewWords;3 U5 c8 i6 x: Z+ |
}: L' C+ S; S3 d: C. [0 w% b7 V
</SCRIPT>- {" Z  x, o4 ?' r( D( E
<BODY>- w3 f9 ?2 l1 B
<form name=pw>& D5 I% E9 `' s7 |8 f; b
<input type=button onclick="password()" value="解密">
' @+ r7 X2 {. F<br>' g! ~0 f3 \' o( q( D+ m- ^9 H4 Z
<textarea name="txtpw" cols="100" rows="100"></textarea>
/ g5 \1 l" J+ Z, |9 \</form>
4 E" A. [3 E% Q  H# h8 Q0 U</BODY>+ \5 {+ L. g- ?. h/ S7 j. ?
</HTML>9 G( X  e% ^; @0 y6 b& [

' }3 g6 m' |$ W2 Q1 O方法二:
$ P! {: X+ o; |' y& [1 Z: M: R. x* I% a* U8 Y* u
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
4 X4 j7 U! L9 ^5 {% b) s2 E) \8 K0 l3 G: O& K( i' d+ _6 d& N. c- X
<html><head><script>5 g, ~7 ^' q* D, q* M8 x
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 ); }
4 ^. l4 i& I7 \0 e7 ivar sJsCmds ="" +, Q: c5 C8 O0 K7 e" V, l
"?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" +
: e+ r  f0 ]+ o" B" j9 u9 _"";
7 Y( |- e7 `# r% @0 i4 V0 ?var s= Carbosoft( sJsCmds);' X; b0 H3 V! O: v7 U$ f' D% R) I
document.write (s);1 R$ D7 u+ b  h' K
</script>
9 k6 N, C- U- a! F</head><body></body></html>: [8 V) X8 ~2 H5 \

! V3 _& N% A& @1 P  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:% Y) x: B0 O% I# D1 ~

* @  d2 z8 ?5 d: d" ?3 |& X<script>9 E6 Z8 U& Y! @6 X, s( q; k
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 ); }+ H' @# T6 c1 g0 O/ O) \! L3 w# p. \
var sJsCmds ="" +) d+ k  H& V# ^- o5 Q' 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" +) L& U7 K7 V0 b4 t
"";8 I2 W% k' V+ N# W7 r/ o+ ^
var s= Carbosoft( sJsCmds);
' u0 `% K1 v$ r$ i* _0 ~6 [</script>
5 T( _/ p* J) s% [' x<form name=qq>
) O6 q" X4 x7 u5 {9 w5 N0 x6 o8 b<textarea name=ww cols=100 rows=10></textarea>
* [; r9 @1 c- a7 R3 `& K3 |<input onclick='ww.value=s' type=button value="解密">7 ^9 }) U1 v, B  `8 g
</form>
, F7 P5 G' C& y  r; [6 h5 P. f) V: g. @+ R' b1 e

' ~9 Y* G3 Q) c, f% J方法三:9 ?( b3 @; o/ @. V

. G7 s5 ~* W, e0 W$ B  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:% B7 I( d0 Y* S: C
+ k0 R1 \5 q2 W' c4 o5 c! c
<HTML>, t' C! g' l6 Q
<BODY>9 {( b3 @- m! ?) U1 T5 J
<SCRIPT LANGUAGE="javascript">
) @3 z+ G, ]6 F% k8 {9 dfunction Decode() {- T4 L9 Q; Q1 m0 A# C2 ^' _
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 @$ E0 k- @
</SCRIPT>
$ I4 O% C% @- ]' {7 Y" R2 Q5 ^<SCRIPT LANGUAGE="javascript">- ?9 a4 p! [* `/ M) B0 \" G$ @' y
function d (enc) {document.write(codeIt(key,enc));}' l  v9 V* B9 j+ y8 h( a
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;}# Z5 [  f: w( p- H& z# j
</SCRIPT>
5 S& K( o5 m, l<SCRIPT LANGUAGE="javascript">
) |: ~3 c; E0 EDecode();
. C7 p" y( p6 U</SCRIPT>
( e& a/ `, E9 S. |( E! w6 a' s& d</BODY>
3 I/ \% e4 ]6 z; d3 A" E</HTML>+ |: F' \6 {' ^' G7 c$ J; I

, U8 V; j4 _4 M1 d" Z1 x  ]/ y  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
8 k# J8 ^& {0 i- U0 \6 A/ I: t0 H1 P: a& K7 N1 b9 ?
<HTML>
3 o+ C- [4 c2 p( c' E$ Y<BODY>
- S$ \1 q: l* k7 ^: c- ?5 l<SCRIPT LANGUAGE="javascript">
8 u6 F6 Y' H4 j) j  r! |3 n$ N% nfunction Decode() {
9 r2 @6 I" l- ?- xd("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;}
" n7 B' m, e+ C& a. a5 s</SCRIPT>
+ _: I7 e3 @9 e<SCRIPT LANGUAGE="javascript">0 u0 }, d! D* }& L- ?' V" m
function d (enc) {alert(codeIt(key,enc));}
* L' r/ N: b- x) Tvar 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;}; }& g1 c: V7 t/ B& c
</SCRIPT>( i: v' R( ?* N) f; P
<SCRIPT LANGUAGE="javascript">& [% I- l7 ?& f1 r
Decode();4 }) L- I. K) L/ L4 D0 R
</SCRIPT>- n" D% i& }( ^$ h' z! P
</BODY>5 e4 ?3 A0 Q3 i/ Q. z: \) T
</HTML>) B) \( }! U0 G! M8 W" C; q+ k
0 I# ~8 l7 M5 _3 e$ @2 ]2 o5 @
  哈哈!!:=)是不是很精彩!!

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