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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
" T$ q3 `4 U3 X
( P& n2 b& M6 J/ a1 B
) n  W6 t) ~8 g. P( f方法一:
6 u" N( ^: H: d! J, u9 @/ B' ~( Q$ {; c& U

1 x- `" h; S* L+ \6 w5 I( j- K* x& ^  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:% K8 a- U% x  ~
1 {; \% `2 U) S
<HTML>0 a' G# u. w0 ^) ?) A" C' e
<SCRIPT LANGUAGE="javascript">
8 v5 i- j4 r7 m1 ~. Zvar 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 u/ }2 K# X( X1 @# H* J% t+ f
var NewWords;8 ?+ i5 u! o" V8 [% {
NewWords = unescape(Words);' D) f8 e" {' m
document.write(NewWords)
/ ]3 n  i: ~7 I* `</SCRIPT>  E: M8 ?( D: g# `* j; Z. S$ X
<BODY>
. I, I7 S5 A2 Q% Y</BODY>
1 y1 |- L4 D- W/ E! L7 E</HTML>( u% Z3 o. W/ W( R* [9 m) v

5 D9 l" U! }( A+ q  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
) f8 @6 v0 M% R8 c4 m, @" y) F( q
+ ~  w% p; `3 T* R; e- s<HTML><SCRIPT LANGUAGE="javascript">
* m7 V- Z* r' w. o& U4 c/ }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"
" ]8 W! D7 I8 f8 Wvar NewWords;
( y" A0 o1 b7 B- Y5 [5 yNewWords = unescape(Words);
- D/ Z  X/ u- |& \NewWords=NewWords.toString();: n# V) A5 T7 d9 C+ y4 K
function password(){& }: w- Z( z# c) Z, q# Z
document.pw.txtpw.value=NewWords;
+ G6 d* U6 |/ v" p2 b, V}0 x5 n- b5 d- E9 l
</SCRIPT>4 }: {( n7 O( T  D+ {* x
<BODY>
$ I  D' H# v  b3 v<form name=pw>
- h7 `+ B0 R( H# T/ t<input type=button onclick="password()" value="解密">5 |. z( \" X6 g  K
<br>8 e5 ?- s6 ]- ]
<textarea name="txtpw" cols="100" rows="100"></textarea>
9 p/ E5 I( l( z" R</form>
% O- m' P$ m& `! i* O5 O3 a+ R  Y</BODY>. S2 t( o- l( p  ]8 E
</HTML>
0 v( E0 v6 ~9 I  ?
- M% L& r$ n/ Q6 H2 m方法二:% a7 D4 `- Z/ @4 _4 p2 \

7 I* _& D3 B; @4 A3 u8 X. P) e& \  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:3 S$ d2 W2 D7 z+ F, |+ C! v
1 \% J  S7 D  z- ]# q  B* d( d8 W8 Z
<html><head><script>; I2 k. R- Y1 e% }: Y
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 ); }7 F* n$ R5 l0 Z7 E# E
var sJsCmds ="" +( t5 \  L- D6 B4 h
"?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" +
8 _5 J! v* B: _7 T"";( c3 r( N9 O  L! i" j* @
var s= Carbosoft( sJsCmds);
( v7 x4 N6 f& X' b( X" @document.write (s);8 y* u6 t4 X# V9 @
</script>! q8 h* |3 b& [; j- a
</head><body></body></html>
! I7 O! q5 j! r# S9 t: n4 c4 H7 @( `/ z! S) b7 l
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:9 W* Q- ^1 _; L5 b. n
: w$ \3 S/ B. u* t& V' w" g* g
<script>
' Q1 t2 c9 j7 o' }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 ); }
) m4 d3 B. h. J& B$ c3 [! Uvar sJsCmds ="" +- o! d8 _7 ?4 Y% n; E9 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" ++ y0 o+ q3 j' x# y% I9 c9 B3 x
"";4 M$ M5 u7 `0 g% n
var s= Carbosoft( sJsCmds);
; n* h' d" T/ X" b</script>: e  [0 E- w5 ^9 \8 p% E9 N
<form name=qq>, b9 z" L( V- T
<textarea name=ww cols=100 rows=10></textarea>; i2 G4 W) ~% t& _
<input onclick='ww.value=s' type=button value="解密">$ g& |) |! y% I; D: m9 p" `
</form>
8 K  x# y- h) \; h0 T" Q8 I  o5 b7 \7 v" ^, y
% s$ ~5 _" a/ J; D% ]3 f& j
方法三:
1 o# n( ]5 k9 i) W; F
1 y6 u3 j( G. h: t8 J+ }4 X8 v  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:# [6 Y$ d6 N. ?
4 g% M9 a3 k; O
<HTML>
$ E% e/ G+ ^% m' \* f% g& i% u4 p% c<BODY>
6 h% l6 p1 T! x& o. C- Y2 P<SCRIPT LANGUAGE="javascript">
5 |! o5 E$ I$ K+ q% Gfunction Decode() {
4 o# m) f) R% X+ gd("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;}% r: I0 m" u  B3 g
</SCRIPT>
% @( g2 `4 r, o$ B5 t3 f<SCRIPT LANGUAGE="javascript">
* n2 @$ U+ l' A2 E+ I: Dfunction d (enc) {document.write(codeIt(key,enc));}
, V  E9 I/ F. `3 K$ T6 N2 Cvar 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;}# c3 r! Y4 J/ a- M1 b
</SCRIPT>
: j3 r! s- x$ s<SCRIPT LANGUAGE="javascript">
( g; u. c1 u; N6 b3 s  Z7 b3 d) a/ kDecode();( H, w2 C! k" f0 n; v
</SCRIPT>: b) ^! I; p) c) `+ V% x
</BODY>: `% e8 g1 O( X, ~4 \
</HTML>
6 q0 R, [& r9 D- P
+ l3 N2 j, u2 p1 T" r& Q" Z" G6 k  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:, ~! C$ q: F! B' P0 g( w

3 M- @. @% Q: g5 p; u9 `4 g<HTML>5 y2 G# B4 _" p( m
<BODY>
) N+ k$ ?$ X- c. d4 |9 o4 p<SCRIPT LANGUAGE="javascript">0 b' X; C" f3 N# \# i5 H
function Decode() {
" w" N* Q$ ^( R- V9 ~( j5 @9 Ud("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;}
+ l0 W1 s; \$ Z9 V0 F: h</SCRIPT>
* H& B/ z' D1 T% u$ h<SCRIPT LANGUAGE="javascript">
, N% f5 ]+ ?3 R$ o7 vfunction d (enc) {alert(codeIt(key,enc));}8 ], N3 [. }6 n. e- X' K
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;}0 E  U5 T& I) U( O; Y2 {
</SCRIPT>" r0 q* d( h0 n! S
<SCRIPT LANGUAGE="javascript">5 k6 V2 t3 B0 F6 e
Decode();
4 b- {- T" O4 Y! w4 y8 ^</SCRIPT>9 o0 B+ k* T2 C1 x, f
</BODY>8 G& n4 V, Y3 Y, \; M. j
</HTML>; p! a+ S: l: ^4 W! M

( [$ ]1 Z- ^5 k" `6 g. f9 b0 V  哈哈!!:=)是不是很精彩!!

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