获得本站免费赞助空间请点这里
返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!" N; [% f5 F( j
. B, [4 M8 b$ [7 Q) S5 B+ F

- ~0 g3 A/ L+ F. z3 F- l$ _方法一:- }& F9 N% s6 e# a7 Z6 x

1 a( P; a+ M* d6 b& S6 O) }" X
$ s% i  [. p7 E& C  `  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:" L& t/ }) ~3 r& H

- _+ Z2 K! a" |0 `. v<HTML>7 Z4 T7 w! b/ M5 a0 R8 O/ ?
<SCRIPT LANGUAGE="javascript">
# k' g/ ~: b  h# Fvar 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"
7 g* j: f6 o$ \3 ovar NewWords;
" T/ p$ s/ s9 @2 DNewWords = unescape(Words);1 R/ h% J, m1 Y2 P
document.write(NewWords)
' L  W" a. L3 ?( [</SCRIPT>
* \4 T1 j# d- ^+ W3 D8 }<BODY>
- s; F; x8 |+ @, f" U; r</BODY>: v7 I, g% j/ G3 T9 Z
</HTML>' \; B+ ?2 a" \5 x9 F1 E
# s6 N$ e# |4 f1 s: `
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
: B9 k! g& e+ g/ U5 D* D4 w
0 f0 p# f6 M* r5 c& ?" ~% _<HTML><SCRIPT LANGUAGE="javascript">9 [/ ?* Q8 S$ q/ R- J
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 F% p* H. m7 [9 e
var NewWords;
- @+ P2 o2 K/ s  L  `NewWords = unescape(Words);
& U3 k* D9 c5 }+ I. h0 KNewWords=NewWords.toString();
7 t* [$ B  s& o; C4 I/ |+ d8 Rfunction password(){
) ?9 I; O2 p: Udocument.pw.txtpw.value=NewWords;
  f4 m' h6 s) x' ]* L3 ?( b}( x6 T) D9 j* P* M/ \$ l& s& ]
</SCRIPT>
* b4 F3 i! t; [( J- x' y<BODY>
/ N' W* F! d1 l- ~<form name=pw>0 H% D7 \0 o. P% o# t
<input type=button onclick="password()" value="解密">
# f% H: ?8 S  B: V0 ]" r! _! z/ Z<br>
& o& U% n" y5 u2 t<textarea name="txtpw" cols="100" rows="100"></textarea>
' [5 o9 D- C  |0 E</form>
" i2 `6 |7 I, F+ Z: K" Q</BODY>* z4 C0 c4 a: F' r
</HTML>
8 m' k  G9 B) P+ F8 p5 [3 P1 h3 y" k3 {- C. Z" h9 n
方法二:
8 u. ?7 G! A4 L- F% K# I) b# r1 n3 U
# h' f4 o! c2 u! x& G  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:( d3 @6 l! y( |" ^9 g# R
7 o/ F4 i( o- e) b
<html><head><script>
2 |  `1 }6 E" Z8 G, Bfunction 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 ); }' [& d4 T) y9 _, g
var sJsCmds ="" +
2 B9 T; S3 b4 r; f; W6 |5 ^* Q"?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" +5 y* Z- Z& q8 W% Y# v- B8 I
"";
3 L: O( V, L6 a* e; R  y- H( O, ivar s= Carbosoft( sJsCmds);
0 v4 M% S6 `# H. ?document.write (s);
' K& y4 D) V& {' j1 P0 G</script>- C3 E" I. G& I* }7 @' u
</head><body></body></html>
$ E; h: Y: V+ P2 v. Y" h8 V+ j4 f, Z/ S+ o6 G$ I6 p6 S
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:8 O5 |! P9 R1 F  f: z
- F; b* J9 h( R* g7 b6 P# [
<script>) p& F0 i# M7 H1 T
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 ); }$ Y; ~% O- m. r" }3 j  t0 u
var sJsCmds ="" +
  L+ x1 O9 g1 |% Y3 ?; }- z"?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" +  j1 o5 G5 |( c% A& `, K1 H
"";! J" `$ L) C7 Z" s+ K
var s= Carbosoft( sJsCmds);, x5 B( N9 e7 |0 J: g7 _$ F) d) l/ M
</script>
% M- ~* ~( q1 U2 y8 v<form name=qq>
% C, s8 x/ w" B: N1 N( |, ]' v<textarea name=ww cols=100 rows=10></textarea>4 @5 }' w$ u* {0 A- k
<input onclick='ww.value=s' type=button value="解密">
' Y0 \& V8 B3 }  O$ m3 F</form>; R" [! [! a% o2 U+ q# J

# u3 d  q9 M( f' f  ?5 N) _1 S2 [) {. ?/ c5 h
3 R0 @; O" x+ ~$ T. r" }: [$ z! ^. t方法三:! y0 A4 i& a: W- N$ ~' z* j( \) J
: ]6 M  Y( y7 W! ~- F
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
! V  o: y  V8 z  |
& N6 ^5 F" h$ F  F$ Z<HTML>4 `0 j# g& E+ z/ f7 A
<BODY>
1 Z# w$ I, k: n5 N1 Q0 s; |<SCRIPT LANGUAGE="javascript">
: D( A* t- j% k" m7 {4 bfunction Decode() {+ ?' r. l. b9 [7 G1 ?
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;}/ C4 i- C9 K- h. O* W
</SCRIPT>
, J# w. c5 w5 Q, {<SCRIPT LANGUAGE="javascript">4 `9 d% v) W: b$ ^% f
function d (enc) {document.write(codeIt(key,enc));}0 D2 `9 R2 o, T: F7 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;}" {2 ~- t7 Y0 f) I0 |- ^( u, C
</SCRIPT>! P8 R/ ~$ a& Z, S
<SCRIPT LANGUAGE="javascript">% w, R3 {  M, S) @) M  d% B' u4 V
Decode();
; q4 e# p% I# b& ~( I</SCRIPT>
8 ]6 w9 X  G3 Z- s% a( J</BODY>
; ]8 v3 H5 _% P6 F  U2 Z4 l</HTML>. R+ E  D2 `+ R5 N% k& e2 I

+ g- [3 u/ l$ u, E1 V  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
% E9 ^( ~* A8 ?" Z' V( y+ r  M' w: v- I
<HTML>, N9 _3 j2 y6 U
<BODY>6 \( X% ~5 A8 @* W" T- d
<SCRIPT LANGUAGE="javascript">$ l2 G6 L) |( u
function Decode() {
9 D! x1 |3 g) J, z5 s- o+ J/ p; {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;}
7 T/ C7 R/ N% o# @</SCRIPT>9 Z6 R; X$ N. p) B
<SCRIPT LANGUAGE="javascript">) G, a5 C. A, M; S3 C7 S2 X
function d (enc) {alert(codeIt(key,enc));}( P& ~4 k+ l2 p% g+ G
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;}- X: Z$ q  m9 A5 x/ r3 |  u7 m
</SCRIPT>
0 W  @7 ^, L; ?# V* r<SCRIPT LANGUAGE="javascript">7 _1 Z1 ?% f0 d1 l' Z: p
Decode();: ~% D; E! d6 G: o
</SCRIPT>
' [8 o+ t$ ~. v6 z( _# ?</BODY>
( a+ g: Q# T4 ?) ?</HTML>
$ N# n( P* W) B7 Y! V- _9 ^% ^: n4 K! P
  哈哈!!:=)是不是很精彩!!

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