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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!; j3 a' @0 r, O- Y% c

( L! h0 i' x3 m$ B
, U1 u- {9 L" j方法一:
! V+ @: T( @- u/ v
3 t) Q) K8 M9 N2 j8 B* `0 Y
0 }" U3 m+ c( U  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
# H& |9 j6 O# a$ U
+ n  E4 f( w8 w) }: v<HTML>
$ b1 b8 n$ _5 Q1 a, G) c+ @% D<SCRIPT LANGUAGE="javascript">3 \2 E$ @; T  T$ M9 T
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"
: N# _- L/ p# `9 x) ]var NewWords;
" g: J+ f* Z3 O& [6 o9 H& U7 ENewWords = unescape(Words);
& t, a- V+ `2 j; |document.write(NewWords)
+ |! T( \- Q+ i; J, v, U1 |  t</SCRIPT>
: o' |6 N0 P6 _9 V# w<BODY>
9 m4 D2 X4 z2 l; d/ Y</BODY>
# k! W( P* o4 h% V5 W3 y</HTML>1 |* Q! O& [. t9 h# E+ R

9 J. R0 ~4 y; i# S  R) `  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:( W/ M  o# @: ?+ x, F. O& {9 G& r

- }: i! G+ F1 n2 q3 [) X0 j2 z9 e1 I<HTML><SCRIPT LANGUAGE="javascript">
5 p$ S* R5 f( C' f: n6 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"2 Q3 Q, F) w6 }* f7 x  }
var NewWords;
0 f3 i4 W- P- iNewWords = unescape(Words);
0 ]' p' l2 E3 w1 G; R& b, lNewWords=NewWords.toString();6 f" D0 w3 j2 V1 `; _
function password(){( g! q6 G" T8 W2 ~# X
document.pw.txtpw.value=NewWords;
+ t0 f$ P$ }, |& w. t}
+ G& V, z/ e& O, g</SCRIPT>& z/ H3 }: y4 g- w. t
<BODY>) |4 y3 E  d% g1 z+ B% a
<form name=pw>& d9 b% g& B$ u5 _! g7 Z
<input type=button onclick="password()" value="解密">
3 ^5 _8 P" [6 P) I) w* ?/ W; l" x( F<br>; i: {( _0 d4 Z
<textarea name="txtpw" cols="100" rows="100"></textarea>
- M* {4 n. }: F! l5 N1 }</form>
* V7 }/ L  q3 b: y$ x</BODY>
, y2 ?) h% f0 t4 A+ ]( \5 Y</HTML>
9 L$ V, ], h3 H4 v0 d3 H/ i
. G) u4 F) _: b. D方法二:
$ r% o" w, w) T- z/ I
$ j: O  T+ C* `1 A  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:- d* q7 [. }! B- q# p+ v# |

. q: V( e( ?1 _: `<html><head><script>
) B: T9 d( ^2 M8 x2 Z# yfunction 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 ); }6 h3 J1 ~& e5 R0 R3 W/ l
var sJsCmds ="" +
" g, F+ S$ \& h: m"?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" +/ k  X. v% @: p" D" N: `
"";
, X' _/ _( s# o( ]var s= Carbosoft( sJsCmds);
8 m3 `: m2 T- k  R, idocument.write (s);
4 B( R3 `, ~* F/ L) b% @! q</script>
( }6 E) f" J* e8 [</head><body></body></html>
: x4 X4 v* ?; H# v
  c; K6 s9 {; ^. s  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
( P1 S+ H7 h1 I# l
$ S7 z( j6 {. P3 P! G5 b<script>
% h/ _! s- _$ M6 E, w3 @- Pfunction 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 ); }+ @; P/ g; X% q4 E6 {3 q2 g7 m! `
var sJsCmds ="" +
8 |) ?' g  H% U/ P"?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" +! ^+ }( u# |: {' s1 ?; f) s$ H
"";
( l. g/ L" s: D3 y( Rvar s= Carbosoft( sJsCmds);0 p! {* z& G7 j' f! t: k
</script>
- O5 W& N% U- |& t+ `3 J<form name=qq>
2 Z9 h7 F! r* [9 b- J& j<textarea name=ww cols=100 rows=10></textarea>
, a" s4 w2 ^) p; z5 I<input onclick='ww.value=s' type=button value="解密">
1 S1 ]2 t& {& h; @1 u</form>& n5 `! J- w  ^, ~6 o' [: H

$ i1 F7 J: S( t& J# ]7 s/ S% D9 d- z0 m- W. p: q
方法三:
& b, X: v" r4 W# X* L% k5 U6 ^4 t; g
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:: L/ @; _" i& D. Z
  L# D0 I# N8 z- d! @0 J& T
<HTML>
, h0 u0 v/ U" s. O6 n<BODY>
4 i/ S4 K9 @. `0 U  E<SCRIPT LANGUAGE="javascript">' h8 e( `, Y* l* `- n1 G$ W' w
function Decode() {1 q/ C( Q. Q% e) m& c
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 N- E: r0 M% j$ a! M2 Q
</SCRIPT>7 c" r+ o4 k) H) Y
<SCRIPT LANGUAGE="javascript">* t% ]' f  b" s: `
function d (enc) {document.write(codeIt(key,enc));}
+ b, _' L. s* D4 \7 B' f8 c2 ?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;}
$ B2 [. _! V, M</SCRIPT>
) z  ]. f- z  k3 ?: i<SCRIPT LANGUAGE="javascript">& ?6 R  [0 s/ a  @: [7 V' b
Decode();/ \7 o; T! g/ Z. f* v! }! `- G! h# X
</SCRIPT>
9 A* |' f8 l$ r. D( P3 y8 C4 Q7 j2 |</BODY>$ T- x) F0 L. c' p4 J2 E
</HTML>
( n0 L* z6 U) d$ v9 |5 R8 p7 i: h% i0 ^
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:; h% J: U0 S9 P. `
9 o& _" U( Y" M2 i0 {# \* N  b4 W
<HTML>, a! a0 n1 j: ^/ Y& {% C# g+ X. n
<BODY>: z4 w2 f" c' m" R
<SCRIPT LANGUAGE="javascript">
9 @" B, u: y- J; m' C4 u) D$ G. Hfunction Decode() {
, J  x8 @' W2 B1 y& od("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;}9 V" d6 Z: E8 i2 l
</SCRIPT>4 }( ^0 ~# q7 R" T' u
<SCRIPT LANGUAGE="javascript">
/ @7 I  c4 k) vfunction d (enc) {alert(codeIt(key,enc));}
2 h; r0 N7 w( H; Z' C) D/ Rvar 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;}  q7 h* E, ~+ E  |- \" @
</SCRIPT>+ \' e9 f6 l  B% U# Y; m) D9 j
<SCRIPT LANGUAGE="javascript">
: [3 t( {2 d- Y3 T( h9 q# X+ l! L5 WDecode();
( m4 ^+ D1 a, Z2 @* T6 a- w! v</SCRIPT>
/ z- m3 K5 x: A: h- [9 w+ n# m</BODY>
5 Z$ n9 J- W8 r  v! Z1 l4 _7 ?: x8 x</HTML>
6 C4 G' l# Z, h# x+ C, h
6 W' \) a" ~: a8 p) G4 n  哈哈!!:=)是不是很精彩!!

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