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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!7 k; E0 }, ]' m. X

% W' {2 s" \' f+ v: C
2 S5 J2 d4 @2 b7 |4 k5 `方法一:
9 N# K+ [4 o9 z  g* I9 x- `* E
3 F& k6 @* |% u% G8 W. V
  r8 ~3 ~& v! V( s  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
/ W$ B5 ?9 p0 A& O6 A7 W
$ ^% B6 S. V* z8 U<HTML>  ~+ ~3 d8 j, u3 p
<SCRIPT LANGUAGE="javascript">
) M- A& `# a, Pvar 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"6 Y1 L6 N- M! }+ p
var NewWords;
1 i) i# z% `4 S1 j6 u" ^NewWords = unescape(Words);. Y% \7 l; t% _8 o2 D& y
document.write(NewWords)
0 O0 m+ t1 |' i2 M2 ?6 h</SCRIPT>
3 Z+ ]2 @* ^# z, H6 w- O2 m<BODY>
( q$ G" A0 \+ ^! n9 @, |9 E</BODY>$ n' u( _) x$ _8 y2 `; L5 Q
</HTML>
; M" _, ?/ b+ d4 U' B  H" `3 C
5 G8 {: T  P9 K. {, d  {  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:8 k' [7 [: T, A& b  p% X* r
$ M. T  G/ N- q- ~, a
<HTML><SCRIPT LANGUAGE="javascript">! e0 @: P$ m2 M/ Z
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"% D' ?$ V( J) i: R& F  _$ X4 ^
var NewWords;8 i* z# f0 t- f1 Z/ U
NewWords = unescape(Words);+ R" |' @6 L( U3 B8 Z+ K' v& Z& U
NewWords=NewWords.toString();
: t1 X. v; R, r$ {function password(){, l, W: ?% T& R; @: a5 N  F
document.pw.txtpw.value=NewWords;! @3 |" N) I9 {
}
8 k' ^- A" Q. \8 G, P  L</SCRIPT>) p8 e; O' S/ F( H
<BODY>- z  v. w4 O, k2 Z& }( y* D
<form name=pw>' b" }9 F- k3 r/ Q  K+ I
<input type=button onclick="password()" value="解密">* C, ]1 \( \, a/ y: U( P
<br>
( M! P- a# h& K- ~<textarea name="txtpw" cols="100" rows="100"></textarea>
; U6 E" D* @6 q6 N9 y8 s7 i</form>
* a% P" N6 O/ G! [/ V, \</BODY>" D0 k; P$ w: b3 L
</HTML>
4 @. Y/ X( n/ l1 Q6 }! L
% U* Y7 U# b. T+ e6 a方法二:
7 Q7 q; W2 q2 y9 I; m5 `- g" X7 S) R( _0 Z- a6 {
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:1 E4 g1 f, \* j+ L: C2 v! S/ A

" O$ J& J# S, K- ?/ s6 D8 G3 {- I<html><head><script>
4 v/ K) \3 G, e% n3 S9 Q# ?+ Ifunction 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 ); }
; ?+ y6 I( N7 ^( ?  _( L" f3 Lvar sJsCmds ="" +
! x1 I$ Z3 w7 d* K, 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" +
7 ^& a/ b+ [7 f! g% j"";# z& t! D/ W. ^4 f: w# I. J6 _, n
var s= Carbosoft( sJsCmds);0 y- U9 ]& \# [& _  ?( o
document.write (s);
8 l5 m( v8 b/ e5 u/ h</script>
( q* k# T2 a) C</head><body></body></html>, Z( c" L7 ?, e# I# ^9 z- o, U

7 H0 c* q* v6 l$ K+ K! a  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:/ M. Q& S2 y5 U/ ^# G

: d: ^$ K8 v0 y& Z  ^<script>: I  A' n1 `. y6 W9 |
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 ); }
; ]  l3 N$ A3 x6 Pvar sJsCmds ="" +
4 t# m: {6 \- K) ]3 J) 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" +" b: b! f* E1 [: ~- d: l3 C' D+ v
"";
- l2 E6 E. w: X( F; O; hvar s= Carbosoft( sJsCmds);
* Z' {4 q& ^5 \! Z& i! m4 k</script>% R) m" r$ W+ L0 q! D
<form name=qq>
0 ~& W. g" N; t5 v% c' c<textarea name=ww cols=100 rows=10></textarea>
9 \; p$ S( X' V, r7 `$ V$ g<input onclick='ww.value=s' type=button value="解密">
! `/ w& R4 x; U8 Y) y</form>
; A+ f6 E( H9 u% N0 n
- x$ l( D% z: L  i+ G  {
3 G- N# o, p1 |8 M: I, X方法三:
: j2 C' x( q% O5 @5 V5 T' q  V0 {! _  Y0 R7 ^
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:* [# X3 P' H  n) \
* x- X( |5 v; [
<HTML>" Z6 e; x3 x4 D. {* }" [
<BODY>: Z3 e- q5 _& a8 X/ F. J
<SCRIPT LANGUAGE="javascript">  R' z' n4 F, g7 ], V3 r" ?: `: z9 T
function Decode() {- H2 l0 z. I& b4 B7 E
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;}
9 P* X' i% ]$ l( i9 |4 k1 A</SCRIPT>
/ w2 @' ?  A( i. Y* L<SCRIPT LANGUAGE="javascript">4 h! \3 c; \5 Z  f9 m% |
function d (enc) {document.write(codeIt(key,enc));}4 y" v- x8 \/ T. `
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;}- Y1 z9 ?% F  E1 |& {
</SCRIPT>
: [, \4 M6 \' G! N/ ~/ r<SCRIPT LANGUAGE="javascript">, i' v/ J/ ~+ u1 N
Decode();& n! g; i& s; G- [+ E$ l
</SCRIPT>
6 k2 Z1 F0 G! u6 g% `- `' S$ e</BODY>
8 @! v' f( }" @</HTML>8 K% o" k7 t$ m% z4 o' @3 c0 G4 t
% g6 G7 @7 G2 F+ q; O
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
- E7 m' Z% o! e) l' D6 t; D( i6 T' a3 U& e" D4 K
<HTML>
1 v/ a6 [5 O1 V0 K* D" x3 c2 r<BODY>
' }% K7 I/ \2 ?# L<SCRIPT LANGUAGE="javascript">
8 U6 g! {2 a, ^; w% A( Bfunction Decode() {
  y# a  K" P4 f& Ad("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;}
& {# ?! b4 B8 g: V+ U* M</SCRIPT>
# G2 a# f/ d8 t' i, a* @<SCRIPT LANGUAGE="javascript">2 w3 e4 w$ \. Q  D3 I1 `, e( G
function d (enc) {alert(codeIt(key,enc));}
0 @, }9 f) ?9 ]& C1 f9 zvar 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;}
& g6 e/ v9 J3 }</SCRIPT>" e: A; v% e1 v; X# ?
<SCRIPT LANGUAGE="javascript">; @6 D- b, Y+ j/ T
Decode();( H% j! x" G2 i
</SCRIPT>3 Z2 i/ z2 R6 h1 ~) V2 F( N0 j
</BODY>% v2 S9 H( a7 R
</HTML>
- f3 ^  e8 h# R8 p
  [( I8 A& Z3 O  哈哈!!:=)是不是很精彩!!

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