返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!! z. |1 |1 L# O& a, K  n3 s) j

% ~# A7 L) k. M% F: X
* v$ x7 I* r2 n# p方法一:
3 ]. ]) ]- o& r! _. p' z7 D' c! @/ u, ~3 S# }
6 S/ }; n* _* W
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
3 i% v& T; O) r! w6 u- i0 C
: I6 p8 q% H) [" A<HTML>- \- h4 A3 T$ M: K/ Q
<SCRIPT LANGUAGE="javascript">
6 m7 T9 z8 G, U  Hvar 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"9 B8 O$ h( d/ D" ~5 m3 k4 s& @
var NewWords;
. }. X4 h% J8 g3 b0 }, b1 u0 INewWords = unescape(Words);
9 e# D1 {. u2 Hdocument.write(NewWords)) W8 `4 l: o" x" l
</SCRIPT>
5 x9 t7 Q9 u/ I0 _$ D# c/ R1 ^* r<BODY>( q  }* |) U# U" ]/ ?: R
</BODY>: K! B" o$ p. K3 @+ I  u
</HTML>0 k3 R% l. i9 P  ?+ R
! E. Z, a4 I* p  H! V
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:6 X+ u# F; d5 G9 e2 p) c

% b8 M+ X; K9 g# i<HTML><SCRIPT LANGUAGE="javascript">
7 H: Z% f& i! c, ], K1 P- jvar 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"% \0 Q# t  s- s5 T0 s1 H- A& M; r
var NewWords;0 C9 y/ ?/ w' D# }' H, x. N
NewWords = unescape(Words);) y5 S8 X; ~5 s7 P7 Z. ?8 @6 d+ ~
NewWords=NewWords.toString();
% e3 @7 S( A1 ufunction password(){
4 X- |8 D" o- P# udocument.pw.txtpw.value=NewWords;( d  H. L3 A- i1 Y& s4 ~- D! v
}
4 E8 e% }% Z' q' G% a5 Z9 n</SCRIPT>8 S' x* s# A  |+ }
<BODY>
$ X6 C: v. d- n<form name=pw>. Z! ~9 m& |: v! x: y8 n
<input type=button onclick="password()" value="解密">
' t  ?7 k4 ]; x, O) \<br>
5 w9 ^: V) i0 b<textarea name="txtpw" cols="100" rows="100"></textarea>$ |8 }/ j8 ]/ i
</form>
1 Q  T, p- `6 {- p" u! c</BODY>
1 s. G  `' A- w5 O- M</HTML>
" j1 {6 R4 y  y2 f
1 e4 J# [9 P0 C. z2 e! k: z方法二:5 d' d0 m0 N/ ~% C: n1 v+ n! u0 q
3 A, y5 w: T. I. `! Z* u4 G
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:& F6 @+ D" v  {! S6 i0 n
$ W2 W( k0 X" t% ^
<html><head><script>
4 t/ A7 {  ?& V( Qfunction 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 ); }
, x: L: B& D$ x* L, g2 Jvar sJsCmds ="" +
2 u9 t, {- X, N3 i" Y, 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" +% w& D7 y/ ~! ^6 c2 F
"";
: B; l% a( U5 Z( H5 b' {: d! xvar s= Carbosoft( sJsCmds);
& r1 Y/ k+ K5 S) T; v7 Wdocument.write (s);: `; u7 E9 F' H' ~7 T
</script>
% Q1 X3 w; U3 T* g</head><body></body></html>
: @( Y4 T  [$ }8 v/ s/ o
% ]. t( f8 a/ f  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:1 F* c$ _; ~' f6 I; S" g
: a9 `) j% T8 |* ~& |0 `
<script>4 N8 {, n0 @. d; w
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 ); }( i8 @6 \( c; {9 ]% J; V6 o. e
var sJsCmds ="" +$ A5 r1 b5 |3 S8 X$ B
"?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" +
+ o& X' u- s7 N. u% `+ V( }"";
/ k; _- E5 k' t' Ivar s= Carbosoft( sJsCmds);& ]( h$ v$ S, n" _
</script>( U$ V/ |4 D6 J) p+ q, X) [2 m# Y$ i
<form name=qq>5 t* t9 W4 O& I' R3 O
<textarea name=ww cols=100 rows=10></textarea>7 p2 H! E) h7 u: @* s. g
<input onclick='ww.value=s' type=button value="解密">
- @; w0 Z6 v1 v- B( U</form>
/ q+ b5 c7 _/ x( U  K
5 N; ]; j3 A  q1 N! p- ]0 O* v6 R* J+ O
方法三:
: |+ k( q% h6 _5 E/ _2 E8 ?: ~9 D, R+ O
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:. y+ e4 f0 }' |2 N8 s- q

$ J, k7 i$ [. e. W<HTML>0 X7 `0 I( Y+ d0 h  C. ?
<BODY>
) N# W& q5 m9 s% J) s% h<SCRIPT LANGUAGE="javascript">- f, V" I7 v1 l, q3 d' N
function Decode() {
  J7 c( z$ z$ ^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;}
! c2 Z5 K$ V1 g8 f6 n</SCRIPT>
+ G. o2 o% d5 T<SCRIPT LANGUAGE="javascript">
; J$ x( \- T0 K' Rfunction d (enc) {document.write(codeIt(key,enc));}
/ j, k3 P; M0 V7 j# \! yvar 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;}& }. C5 h, |  q+ i9 e0 v" h% Z- o
</SCRIPT>
9 Y; q0 v$ b. `' V- [- p2 P<SCRIPT LANGUAGE="javascript">
2 A: ?6 C, v5 I0 [& b: sDecode();% K( f5 P$ E' {/ X
</SCRIPT>4 }/ r: y5 H7 D8 U+ S; b
</BODY>; F+ @6 Y+ x$ s% ?
</HTML>
7 p; }) K. Y3 ?0 X* P
6 s1 I. C- s0 W( ]; o4 c  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:. O2 O' O& U, O! b( i* ~8 O
) Y' [0 n$ }1 d
<HTML>, {* i6 q1 F! l  G) _4 H
<BODY>. `! y4 ?3 b" ^
<SCRIPT LANGUAGE="javascript">
# N" [, N$ r5 v, ~% N: @+ p0 Gfunction Decode() {; j; ?+ I  K! h! t+ i
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;}
1 X) U& q, ^$ C! }* G</SCRIPT>& P7 b( {1 c* y; Y' y
<SCRIPT LANGUAGE="javascript">+ l6 a# ?8 Q" }$ y% B$ x
function d (enc) {alert(codeIt(key,enc));}
, V* Y% z9 A/ U# F: Y: _  {1 B( Evar 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;}3 k& F# Q+ Y. f
</SCRIPT>' w5 W/ O, l8 J$ Y2 j  `
<SCRIPT LANGUAGE="javascript">9 v7 b0 H( R! @2 x
Decode();% f% v; d: l9 Z! s9 Z' T
</SCRIPT>6 {" Z5 S% [$ p- {& w1 W
</BODY>
; I  _6 Y7 ^- @</HTML>. X, M. Y3 `3 _! z$ ?2 T* f% I/ X

+ f; u9 [2 {# B# J- R% D  哈哈!!:=)是不是很精彩!!

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