返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!& G( ]1 s. A; Z. @" O  t
9 @5 F5 ?7 P6 J* ^
- l' n. x0 R8 {
方法一:/ K+ X1 s& _& {. x0 q
5 z$ R. {) I% w

6 |3 j8 K, A0 X  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
4 t7 c& R4 S6 |. l: Z, N5 _! R+ C2 y+ I* E  ^
<HTML>+ Y% P0 g, L1 f- g1 X( h
<SCRIPT LANGUAGE="javascript">' g: |1 F' {$ S0 e, V
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"
2 G  i8 ]2 j' `  x; c: N+ ivar NewWords;) @3 N* ]1 s& o8 R! \  X- P$ Z; ^
NewWords = unescape(Words);1 m% f' h9 C& ^, `! Q# x
document.write(NewWords)
5 ?, y. E) w' K7 C! k6 d& g</SCRIPT>
, j; a/ u( }1 x6 Z. w<BODY>
- B: Q  ]$ T/ A) d4 x7 z</BODY>
, o0 @4 g5 W- j3 A</HTML>
# T3 Y4 F$ t( g3 q7 Q
1 c" o4 k7 l& V' H% J( `  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:3 f9 B! ?$ l; p9 O$ m

' @5 y  J5 G: H" _3 J5 j<HTML><SCRIPT LANGUAGE="javascript">% B- p1 W: C3 h
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"
' L6 z, f2 y0 P, k& S4 Pvar NewWords;! }) p) |( ^* c! v. R* _7 r
NewWords = unescape(Words);
0 G0 \# e+ A! L! l5 `: vNewWords=NewWords.toString();
" `  b* F5 u) K$ Gfunction password(){% r3 F5 I4 K8 w% T  [
document.pw.txtpw.value=NewWords;
0 c+ K/ O: V3 v- \, g/ i}. ]/ G* L# @& O0 }3 n0 @/ ?, J& c
</SCRIPT>  B/ v2 o3 A0 o% |
<BODY>; L- l* b! _2 J' v
<form name=pw>) `3 c! ~3 Z6 _0 e" N2 P5 u
<input type=button onclick="password()" value="解密">$ x5 B2 H* y+ e) F& P8 b9 m
<br>3 b) Q: }. A' x5 S2 G' a
<textarea name="txtpw" cols="100" rows="100"></textarea>0 O: U! W) O8 |+ |2 ]
</form>; K, o; z$ H' w* B/ L! z) @9 M
</BODY>
* B7 i' b) }# l* L</HTML>
& p! q, |9 S/ l
& V# I- u! H. n( D! r5 S方法二:0 P- G4 Q) `  h: W& _

$ i7 X: z& Y7 y+ Y( K; D$ p  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:- h; b$ e% E- O/ V" w: }
2 Z1 t9 C3 L1 l/ A' @1 X) O; f, U, i
<html><head><script>
- \2 Y* B* i% o4 c6 ofunction 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 |8 A. z7 |$ nvar sJsCmds ="" +
( Z+ v- k9 K! B: p' u"?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" +) _# d' q& y1 @4 [. m9 w
"";
2 q& Y8 p  ]5 [, ?$ Pvar s= Carbosoft( sJsCmds);
: C+ O& u) a, E9 E2 W. ?document.write (s);
: {+ K6 T6 q. P' u0 p* l' S2 j</script>$ I( Q$ E- j" a  Z; M# u
</head><body></body></html>
) q2 I) N* {- F2 B  F/ Q% _
" t0 [5 m$ A7 i1 w2 y1 P4 @  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
- k, m* u* x( c! D- f. s& O5 t# D, Y
<script>
/ p4 t5 H# F* W( x3 l' v; g1 Wfunction 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 ); }
- a1 O( F* A; Q, o' ?var sJsCmds ="" +6 ^0 \1 b# ^. r) W0 N
"?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" +
( z1 I% Q1 ~1 z0 X% p; w# F"";
8 k1 ^! G8 c- }/ f8 P0 c9 R7 c1 o5 Cvar s= Carbosoft( sJsCmds);
- q7 Q) y! `$ o% A) d  p- w6 B2 ?</script>' |% {" g" o3 B' y& Y  i
<form name=qq>
4 Y% T, ]2 {9 T; {; y<textarea name=ww cols=100 rows=10></textarea>
. V5 L7 p3 Q$ l' U- h<input onclick='ww.value=s' type=button value="解密">- E7 _  G" M  \0 @+ M
</form>
# K. c% x% u6 ]* l& u# p. p8 }7 B2 C( |& S8 d
5 \- D' I3 ?% Q0 `/ `2 G
方法三:
! y1 I4 }. t) X* f% F% }7 n  C+ S4 z  A' R. Q5 @: ]+ z; l# W# \7 n
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:& s  d2 e; a% ~, s5 G! H& M" r, V

1 @' B  H" u- u% k1 D& k<HTML>8 @0 p- O/ q8 L1 X3 S$ F
<BODY>
( M. M, U! \- s: f; Q<SCRIPT LANGUAGE="javascript">
) z1 G: G' I& h' tfunction Decode() {
. j, x  U" j2 ^! n' y1 R( nd("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 L4 \3 \* v$ a4 H3 [
</SCRIPT>
2 l+ R, n, g( g% ]2 Y<SCRIPT LANGUAGE="javascript">
) |- t( q3 T3 e+ Q) Z5 rfunction d (enc) {document.write(codeIt(key,enc));}
# B  i5 a8 o( o6 u0 \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;}5 ?8 t' e5 C! A7 C2 Z- F7 N
</SCRIPT>
% b! o. d, T7 f! x% N3 V* i<SCRIPT LANGUAGE="javascript">+ ^3 Q  r& u$ S/ S" h+ Z
Decode();4 ]0 h) {% @6 Q/ M2 Y
</SCRIPT>. q# g# i- o8 _. r
</BODY>& ~+ B  @" b6 j& L
</HTML># R; t7 O2 ~- Z9 v
, ?! i0 Q( `! x- v; X
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
6 ^# R/ Y( {# @  v& x2 N5 P8 I2 d' h# v1 q( ~5 y
<HTML>
( c7 v+ Q, y4 W3 \. `: K) W<BODY>$ L( [! ?% P9 o
<SCRIPT LANGUAGE="javascript">
& @9 h* F+ O  Z3 E- [function Decode() {4 T3 K3 Y  w: U4 [
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;}
) m0 E6 B3 ]0 l; A4 P# e( O- v</SCRIPT>
7 [3 M2 e; H: x7 n+ V8 J<SCRIPT LANGUAGE="javascript">
. O$ t( K5 t* _( ?; L" t7 Sfunction d (enc) {alert(codeIt(key,enc));}" _! M' A+ H1 y3 W0 Y; R0 r9 o
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 w8 v  ?  O8 M! s- d! {( U</SCRIPT>
2 |# s7 O; [& S- ~; q6 }! ?<SCRIPT LANGUAGE="javascript">
0 \3 ~$ c& F4 n- ZDecode();$ H/ N$ {* w7 ~) T
</SCRIPT># s6 d4 R9 N' k+ ~6 u& k- r
</BODY>
+ l3 a6 Q/ x4 G: A3 y</HTML>5 c$ [8 |; K' }1 P9 I3 g( J0 V, h, g
: q. k) k+ p, l& s; W( I' n
  哈哈!!:=)是不是很精彩!!

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