返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!6 c: z4 b6 Q% _7 G" c! c' ^6 t1 j8 a

, Y' a6 @3 @0 u2 E
3 c2 V" n& z' F# ?& V8 y方法一:; d/ b0 {  C0 h- ?) w! l
# R8 G% c- \$ X0 J# _% A

  S& Y. X! y& `8 D3 _  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
. \' k- G' W7 \3 w0 w
1 q' R1 n8 r5 h! W7 w<HTML>
2 }' |) g/ U  l<SCRIPT LANGUAGE="javascript">
* G/ n% w: O& P+ J. }3 k) 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"
' b! O- M4 Q9 Z5 ~5 T" Qvar NewWords;
2 c6 g& j( L" C- [- T+ lNewWords = unescape(Words);
, d! {) {. f' [8 n& U) ~* f* k. }document.write(NewWords)
& Y( e9 S% \6 m6 l9 {5 X, K; I: P</SCRIPT>
8 A& f8 S' r' H  F" c<BODY>
- s5 E3 {0 H5 E0 Z& b) c4 N</BODY>  y2 Z5 Z# N* _7 w8 T; A3 ?: c6 o& N
</HTML>
9 m4 B- z& ^- ^. F# ^! P8 }. S5 t, a! ]$ k
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
  b& k/ x  B$ r! W3 O& r. P8 W% h4 g2 [  g5 i4 I& {
<HTML><SCRIPT LANGUAGE="javascript">8 i. z& H6 L2 w& ~% j2 w$ {8 v9 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"
# o' ]6 ^; ?( Q# p" V9 w% C; ?. Evar NewWords;
& y& i' Q. Q0 x9 l. _NewWords = unescape(Words);
9 N/ F/ _+ b( v9 J9 E; t5 LNewWords=NewWords.toString();% u  d# }; d8 J2 \, n0 a4 E! A  U
function password(){
" w6 U: j, b. ^5 x$ J" cdocument.pw.txtpw.value=NewWords;
5 X( M7 X. }# M: B* ^2 a}
* I( r4 N4 W/ ~' Q6 n, f</SCRIPT>8 H0 d0 _9 J7 H5 q* Y
<BODY>
% K( x9 |0 M5 t3 x: S<form name=pw>
4 ^; e: i3 d& Y' K5 O, b<input type=button onclick="password()" value="解密">4 n( c) x* [/ V
<br>! i8 @% ?! F* M
<textarea name="txtpw" cols="100" rows="100"></textarea>
, z# m: y( r$ j$ W3 q3 V. E</form>
0 F( o2 \3 E* c1 q, j0 Z: W</BODY>
0 z0 i% y1 E4 j+ o</HTML>% k' ^7 u' C. P
) U6 F2 ?6 V4 d0 f' a
方法二:
! k/ Z# S' Q5 v0 a( G4 b! j
7 Y$ F' g5 w) Y6 @  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
+ K" L) y" L$ o6 S+ h8 O% ]; Q2 n+ O" s& K
<html><head><script>
+ x- W. L5 V7 _2 {+ [- u3 _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 ); }' L$ T' z" P5 e
var sJsCmds ="" +% D9 t( }" w1 y  s6 W) Q: R/ X+ W
"?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 `' z( p! I" x
"";. }  n, c+ z- W
var s= Carbosoft( sJsCmds);% j* Y8 s  W% G" l( `$ K- L# s- m
document.write (s);1 z' {( @% ^7 P9 Q
</script>* a9 W" A" V" D# X# z
</head><body></body></html>
: p; D' a6 }! t; I; v* G! d. @4 S% H3 g( e2 E0 h: ^' q! m8 a; w: ~
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:4 [* c* a' M3 {) U% e/ T
/ f8 Z  ^% ~2 ]% D% h. N. A) l2 Y
<script>- s6 [& _* o, _+ W# ]+ G) h
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 ); }
9 @6 T, n+ [* ?/ a0 R1 \var sJsCmds ="" +* ]4 D# ]# `! t% z' E4 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" +, }9 Y) a$ U" ]6 y
"";
+ [6 c6 z4 y1 O) z9 ^! `var s= Carbosoft( sJsCmds);8 w9 s4 w/ h2 m. l% D' _4 b5 d
</script>
/ ]" c# _- Y/ W: q3 u<form name=qq>/ e2 w- f8 Q+ D+ N# Q6 j" k
<textarea name=ww cols=100 rows=10></textarea>4 Z, z, c& G) o4 w! M  J
<input onclick='ww.value=s' type=button value="解密">9 @  `% Z; r7 E+ c
</form>
2 c4 ~5 }& J/ I7 V2 s# H2 E4 f9 ]* s* u! P+ U+ `; q

% t) W) L. h" }& S方法三:! K! j1 w0 y8 j1 A

1 ^0 o& c: y9 Y9 D" ]( u  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:  e2 {. r7 T: t0 g+ l/ g/ U; `+ z

# p( [  G" X" \6 J" s7 C+ ~  {<HTML>
$ |, p$ E' W; n  f  Y5 e<BODY>
: H6 t5 ^) u5 Z<SCRIPT LANGUAGE="javascript">0 Q6 e5 A+ ?5 X) z
function Decode() {
) [: |* p+ v) j$ Xd("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;}+ M; W* @& M2 l+ R& G$ w, r$ \
</SCRIPT>) Y/ u2 T( r6 A$ |
<SCRIPT LANGUAGE="javascript">
% Z. w* n5 w! J0 Z! {* r3 Nfunction d (enc) {document.write(codeIt(key,enc));}
) N3 Z0 Y" D0 s- T& T: 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;}
2 }1 [$ g0 A7 ?( I: q</SCRIPT>, a7 g4 i* ^" _2 Z
<SCRIPT LANGUAGE="javascript">
. V! S6 o& b2 t0 PDecode();
5 R+ T# S" W* P& F</SCRIPT>
0 v% F; n8 o2 l  _) p" n: {</BODY>
" f5 r& p& e& U7 O) O8 [</HTML>
4 S1 J* l! |, R5 f8 [; J4 k
8 {- I& q/ R+ I. M1 X% ~  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
+ Y4 G; @; W6 G. M9 n. R% P9 l0 I6 E, `4 v6 |8 w
<HTML>
3 o/ t" e' B5 g<BODY>& W" j7 Q% [/ |6 H
<SCRIPT LANGUAGE="javascript">) B3 A' i% P3 \* E
function Decode() {
, t/ c, M0 o" H, f% ]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;}
  C& H! P* ^" r5 ?</SCRIPT>
* @: }" I6 A5 ?3 e<SCRIPT LANGUAGE="javascript">7 r5 c9 d, d+ K0 u  V% g
function d (enc) {alert(codeIt(key,enc));}
4 n9 H  Y  s) \! u; cvar 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;}
4 ^$ g2 X% G6 ~5 H" H, k% I4 }</SCRIPT>/ T6 Q2 l( z& {5 p
<SCRIPT LANGUAGE="javascript">: R( B. Q* y( V$ [0 d3 n
Decode();
6 L2 M& s: Q7 o0 J3 d$ ~) X</SCRIPT>
, a- R. b* H) X, S</BODY>* ]8 K$ V6 i6 f. o0 U2 U
</HTML>
5 r: J0 ?6 P, p
% ^6 _' G  n& v3 m! a  哈哈!!:=)是不是很精彩!!

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