返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!. D3 }  v# t/ w; D
" E8 K) d' S3 ^

  R0 a8 c9 M% |) L方法一:, m# Y- ?! h) \# c0 {, M9 q. {, S0 ^
) H) ]& ~. N& g$ p9 {2 I# Y/ v

9 g! g" A0 E3 H) ]  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:' [+ [+ ~, Z5 \- r
; f, Y; G4 B2 v6 b1 r6 _3 }
<HTML>/ V4 X  _+ [+ [1 m. v( F
<SCRIPT LANGUAGE="javascript">
* f4 Q* G8 ?4 l( }, g0 U4 Yvar 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"
) g) u  N4 Q% Z; tvar NewWords;0 _2 C% }4 H; S* h! ]
NewWords = unescape(Words);
: q/ H5 |; y8 @8 q* P3 Tdocument.write(NewWords)' l6 K5 k4 d" w% M6 J: ?( n
</SCRIPT>6 v8 F1 ~7 k  o: t$ X+ B: Z
<BODY>4 _) h( \$ K7 m$ x8 Y1 ], Q
</BODY>
0 R1 U1 T. d+ {</HTML>8 u  u$ i3 b! [( d

: p. v! _7 N, A% }  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:: K+ y% E- v; c! }

# V/ z3 v0 _9 X, U<HTML><SCRIPT LANGUAGE="javascript">% O8 s9 _/ X# I# Z: N: @
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"
, T  v( X+ `1 A1 K  Avar NewWords;" E% X3 m! ~# H6 x. p: r3 ~
NewWords = unescape(Words);; Y) T6 D6 i/ a2 N( N+ J6 u
NewWords=NewWords.toString();+ u1 Y3 t+ z* R/ s- B" R0 e
function password(){: @9 a, n9 Y/ k% Y. ^
document.pw.txtpw.value=NewWords;8 ?! p6 Z# {& L: u' }& q
}6 P$ d4 c6 O! t2 B: G5 z* P! e% M
</SCRIPT>
/ {2 |3 z; k/ A: U<BODY>: ^6 b1 I( X/ {; {( m
<form name=pw>% {- f% R/ D  T6 @
<input type=button onclick="password()" value="解密">0 p+ q  ?$ X6 I$ `$ j' C
<br>, w7 L$ e. y" J+ Q: E
<textarea name="txtpw" cols="100" rows="100"></textarea>( e% O4 y4 p2 C" w5 x
</form>
" ^$ f! J! H% n5 _, T</BODY>
1 L2 y' w3 J+ S8 S</HTML>
4 F; A0 C/ P6 C( v5 r/ o( L$ R4 U* h9 u; o% n9 k
方法二:
6 Y9 i8 k( Y( V1 P2 Y7 I. F  Y4 y8 _8 F4 U! K. z
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:3 o# S9 O4 t0 B, M* d+ U
: t( R& ?  B8 g
<html><head><script>
( b, _9 Y% l. n% kfunction 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 z3 c$ K; i0 ^- M% evar sJsCmds ="" +; A& y* ^) H: N$ t0 i
"?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" +
" z; ]4 `& p6 G: d4 W4 q' ?( ?"";* p8 H0 j) i- M! @4 m+ \" q
var s= Carbosoft( sJsCmds);
1 \, s. |5 n; L& c# Z6 F8 sdocument.write (s);
8 F; p; F6 e1 n. `+ ]( d</script>
% G" e+ p1 U- L& {</head><body></body></html>
4 w4 `4 s- w6 v+ P9 j
8 d' G1 R- t8 g. i0 v8 Y4 Q* j$ P1 u  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
$ F( U; F. Q1 v9 T$ H" l: y" }4 t. A4 v0 f
<script>
- ?" d+ I3 e3 G7 @0 Cfunction 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 ); }
5 Z; M4 `% t5 Q  Tvar sJsCmds ="" +9 A* J2 D) ~3 o9 E# a
"?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" +
! c9 ?0 D/ t9 D+ V2 b5 M"";$ Q  E9 ]; M8 N  _6 E9 ^- p. C
var s= Carbosoft( sJsCmds);2 |' x1 \4 ~2 g+ X
</script>
  l! M9 J- W- ^1 v& X8 }+ b<form name=qq>
- g8 G& r6 x/ c0 |3 M# A  q<textarea name=ww cols=100 rows=10></textarea>
2 i- C# J- K, V7 f( k' o<input onclick='ww.value=s' type=button value="解密">
4 v% _& o8 g1 F5 j! X</form>+ t# _3 m7 C0 J: R) r

# z9 V+ e/ h0 Z( p! K* K/ J
7 U3 w& |, N, W* t! i: `% V; b3 I; t" J方法三:; t9 |5 W" w- d1 U  `6 ~+ a8 R  O

2 }& o3 T" l; P2 ~  u9 X4 k  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
% F& D4 X7 ]4 ~' g# y. o; Y$ x
# Z' j9 u7 a6 o) F9 S<HTML>8 s' [& w# v  Z3 ]: M* P
<BODY>2 V1 W  }' o5 F
<SCRIPT LANGUAGE="javascript">
& [# n/ Z: r- i8 |/ r9 ^function Decode() {
5 ~0 b: H; {6 _& sd("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;}
# ?# P" ^0 R# a2 _. K6 ?9 f</SCRIPT>
; E/ M) Q+ G) ~  Q<SCRIPT LANGUAGE="javascript">* Q" Q+ R( |: T* c) x3 @
function d (enc) {document.write(codeIt(key,enc));}0 a% a4 E* t# B; V9 m
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;}- a: v1 r& c  @' C7 N2 o
</SCRIPT>
6 ]6 {. M1 s: D% {( q% I6 z( h  H<SCRIPT LANGUAGE="javascript">: R' L+ [# l9 r& V5 G1 q7 l
Decode();
5 Q1 l1 `6 l: }9 Q  l' o</SCRIPT># [6 T  C! X& Y, \# y) d) {
</BODY>
2 i0 ~. `6 B+ n2 a6 t</HTML>
  B3 _2 W5 x1 s6 r" `+ z8 G% Y- S2 }4 A2 ]
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:" I9 V# B+ K% {# E- `

; r$ Z! K0 B. J  |; G4 h7 ?<HTML>4 w) K4 i$ W7 e) r. O8 k
<BODY>
8 @. |- e. S# [1 }<SCRIPT LANGUAGE="javascript">3 J; |) V" r) |( g, a6 i% \; q
function Decode() {0 X+ Q  P5 `  n7 e) s+ B/ P2 y
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 s# z: l* x, y' P</SCRIPT>
# ^/ d- ~. K" l5 A5 W" W<SCRIPT LANGUAGE="javascript">
9 v! R& m0 S9 W! y6 C9 q( xfunction d (enc) {alert(codeIt(key,enc));}. O/ X1 M5 g* K' E. 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;}( V: p+ H, L$ X; F
</SCRIPT>4 ^3 @) x6 w1 p3 J% l
<SCRIPT LANGUAGE="javascript">
' ]8 O' K8 {  e9 b! RDecode();
+ V/ H4 O; U' M</SCRIPT>( o: ?( ~( Z" x3 K$ z: g; N( J
</BODY>% j' e" `% I! m4 [- a! A: P
</HTML>9 }+ w( s3 A. x, F7 h3 @) F

& q' I) _- |3 ~9 s. f5 V  哈哈!!:=)是不是很精彩!!

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