返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!$ a7 \) X# }$ A( C4 r
4 a! R+ X0 ?6 U( r* |/ Z5 U

  k7 W4 w2 v3 J* W方法一:- o0 p" R6 n, l! \) l
6 U2 t$ Q- Z( B. Y/ r0 k
$ c* O; p, u4 [0 m& d: f9 S
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
- T5 Y1 `5 k4 `( o( u
% }8 c# }* g; \+ R8 E+ f7 W0 f<HTML>/ {. O* p" e% K0 u/ A
<SCRIPT LANGUAGE="javascript">1 G+ u6 E* N6 f8 ]
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"3 X8 v( v( \! P: z5 T9 P9 b
var NewWords;+ R" f8 H8 z$ W$ f$ l
NewWords = unescape(Words);
7 t6 Y# a- \, R8 h) N9 i9 bdocument.write(NewWords). ?) a- x1 L& d1 }9 V
</SCRIPT>
0 J7 X3 [  m* ~<BODY>
- s7 s" [6 a! l4 W3 [3 q/ Y0 @- G</BODY>1 u' C; f  V, u1 ]- h" a
</HTML>
  C( j6 }% @- d: E  L3 Y# {) e* {0 y' F! R) G
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
: G" R3 K% K- n
+ Q% c/ e4 N# Z# C* ]9 f2 D  l<HTML><SCRIPT LANGUAGE="javascript">
# F! U. W5 ^, K! |, m$ m! Bvar 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"
( M* A$ Z' F. r- e! g  E  K& {1 Mvar NewWords;/ R. n) @0 ^7 q' @- [) T; b
NewWords = unescape(Words);$ `7 n9 m  v0 M8 Q
NewWords=NewWords.toString();
! D+ |' ]) W3 k4 J7 `3 `# bfunction password(){
) }8 @0 n; G6 Mdocument.pw.txtpw.value=NewWords;
9 J0 ~/ @# {3 T$ \$ ]}& L* @1 }$ {5 u/ \  G
</SCRIPT>
8 M. l, A0 c8 O) q<BODY>
5 w3 Z1 X2 g7 e# G7 o9 S; I<form name=pw>$ h3 |1 T7 a  }+ p2 L
<input type=button onclick="password()" value="解密">
* Z4 a) _- j: m+ \<br>: j4 y/ h* n( |, V6 e, \" o
<textarea name="txtpw" cols="100" rows="100"></textarea>3 V8 Q8 E2 _, l( A# ^2 f
</form>; `' f8 x9 y, m9 q9 w
</BODY>
. l7 @5 L$ z) ^3 M& ^7 f0 Z- e" i</HTML># m, ]6 X/ q3 B" `( Z

2 a9 ]8 b% o- G" e0 x4 e方法二:/ `9 F3 z8 o/ x4 s4 N* D7 v
: Y& z3 R9 m( B" Z
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
; U. T7 S3 A* n! t& `0 b; Z* ^7 n! _/ B- a9 o! c% B  S
<html><head><script>
) p( a1 c& C! w4 [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 ); }8 I& g5 ?2 B: N+ O0 j  @
var sJsCmds ="" +' H5 u7 [0 h+ ]9 F. 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" +
" G+ h- p, i2 n$ t: P  E, ~"";! J& h8 f" y, I$ ]  A
var s= Carbosoft( sJsCmds);
4 g* b- Z- t6 z' ddocument.write (s);
' I/ t! w# r7 m3 `& O& b</script>$ e2 i( x: e+ V; B6 K* e9 E+ c
</head><body></body></html>
+ H( C$ ~1 w. \( m
% }" d3 r+ U/ I; U7 |  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
9 F; O0 E0 O( {5 q# P0 L
; L5 j0 C8 {( ~0 K  }4 Y/ X3 P- u<script>
: Q1 E" f! ~* Q% `1 v: Nfunction 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 ); }
9 Y* Y' U  k  Y. Vvar sJsCmds ="" +5 W- L% G; S4 l7 r, \2 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" +
/ z* c0 |8 ^3 J7 Y# L7 Y9 H* Q"";
/ q* Y/ F! a! P& svar s= Carbosoft( sJsCmds);
1 j: W# l# m' M& m: n1 g9 e</script>& z7 w2 d6 u6 N/ t
<form name=qq>
- T6 W  h1 k5 i: {! R3 h2 c<textarea name=ww cols=100 rows=10></textarea>8 O. K9 P5 u, C7 ~/ j
<input onclick='ww.value=s' type=button value="解密">
5 w' k5 q, D: p7 W/ \</form>
% N) X! v4 H6 y7 j3 v
$ M1 _9 ]& \2 @6 V3 |3 G( Q$ j1 m! X( E
4 u5 ^1 \% [- G方法三:9 T6 a4 S: {# |( F, I

. w! _$ `( d( ]0 c- D0 O  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:) R( F' {! i6 s+ }

7 G# F7 Z% W8 W9 V<HTML>
, B9 c( c( i# d<BODY>
2 X; c0 @- C3 [3 h- H" F<SCRIPT LANGUAGE="javascript">. A( Z- k* A7 i4 y! Y9 R( y2 C, s
function Decode() {; d; h& c. ^$ ~# c! y5 m
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;}% `0 i  E" E  r9 P
</SCRIPT>
+ B$ k/ l' {( d- z# I<SCRIPT LANGUAGE="javascript">* \* m& h! ]& N/ P) _4 X. S+ X! i
function d (enc) {document.write(codeIt(key,enc));}
2 J1 v0 K! P' i& N0 {) m6 c; 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;}
% Y/ I4 Q2 ?# h8 N3 i2 g' K1 e</SCRIPT>
& U+ n: l0 H% M8 Z<SCRIPT LANGUAGE="javascript">% o) I3 q% S, u4 @
Decode();0 l9 f  @) ^- g2 A2 ^7 d6 k
</SCRIPT>, X+ g6 Z8 \. i  k
</BODY>
3 B) v' e! W' J" \</HTML>
, W: O/ O; o* f! S3 @; |1 V2 V! w6 g4 S. G. u
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:1 w6 q) n) V$ E& V1 d
$ q$ i, I7 {' c4 @
<HTML>! q' X# }/ g5 j1 f) Q
<BODY>
% L+ m$ `# z* `6 J5 s' U: J1 Y<SCRIPT LANGUAGE="javascript">
  m8 E- ]3 l8 P, kfunction Decode() {2 C( b+ P5 q, U" \* l: C- s& }& 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;}* R( P. i8 b  x
</SCRIPT>; a5 Q% x, j2 d' X  d
<SCRIPT LANGUAGE="javascript">3 Z6 X) {% F' W  k, _
function d (enc) {alert(codeIt(key,enc));}" U* e! b1 N  ~
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 t1 [' h$ H: t, h</SCRIPT>) }8 X7 _) r: l, s$ a4 w$ R$ I
<SCRIPT LANGUAGE="javascript">
5 A8 H, A; {) M+ UDecode();
5 u- A- A- Y3 V</SCRIPT>
, ^+ P  E4 i/ q0 [& V</BODY>, N8 b- X! Y* G" J& r
</HTML>
* c! Z7 |/ ~3 P! V  d: i4 K: L3 _' }( L/ _8 \' l  s) Q0 V
  哈哈!!:=)是不是很精彩!!

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