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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
2 T! h+ L0 h- r5 T* w  J
1 I/ M5 i& k+ S! T- S6 s# q6 _, g' y) l# M
方法一:
* |# l. F* y7 _+ x& b4 O
1 q/ m- N& y5 i2 A) x9 @, N% ~+ K, y/ a4 y0 U
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:4 H/ b; o* y3 A
. \  C4 c' i/ C: H5 b( s" o/ t
<HTML>9 c+ Y% l5 Z- f4 A* R' f0 d
<SCRIPT LANGUAGE="javascript">
( r% P5 H: m5 N5 E& Wvar 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"* H) U/ j2 O* M1 d7 U* a: ?% b
var NewWords;- X8 X" N& ?& ^& }: }
NewWords = unescape(Words);/ s. b4 G6 e" x$ A" w
document.write(NewWords)4 S/ ?; K) o$ q5 q0 ?
</SCRIPT>
! ?  T* }& X# f/ f  E( ]1 `0 ]<BODY>+ K5 c1 a6 ^7 F, `, R5 d
</BODY>! ?! k* `$ s$ c/ D8 M& W
</HTML>4 {& t: q, \7 H5 m7 }( W% P
* M0 F7 J% k+ w6 p1 \$ Q
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
1 {4 X* K. U3 `7 [8 G* {' g* J
, [0 j$ j, M) j% A" B<HTML><SCRIPT LANGUAGE="javascript">
; s8 A$ f* t5 \' C7 U  u6 wvar 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 W5 c7 b+ ~7 G# O
var NewWords;
" S, V: \; I5 }7 p. G& nNewWords = unescape(Words);, i, M, U3 _$ J7 j  f
NewWords=NewWords.toString();: J+ L$ r7 W+ O4 q7 \
function password(){6 w! O# Y, ?) a* v1 f. I
document.pw.txtpw.value=NewWords;5 z0 H' V1 Z1 G; t) G
}. ^: D3 r, s; |
</SCRIPT>
+ U1 U3 m6 r+ F' m/ q& L<BODY>' w4 H+ I+ [( x' g
<form name=pw>& f$ w) M9 q1 U( [+ N& u6 n3 w. ^
<input type=button onclick="password()" value="解密">2 V. `" f5 `3 {9 Y+ P
<br>' g# z. E  c, p/ [* y# c
<textarea name="txtpw" cols="100" rows="100"></textarea>
5 }8 z  _1 q) C6 D! ?! Y, Y</form>/ s+ j: d8 q# f7 P7 J
</BODY>
9 l0 P# K, Q" u$ X! B  g</HTML>9 k7 _2 Z4 R1 a/ T# A8 E

+ h2 x  p' S5 j% i" z方法二:! q' ]5 I0 D4 B% [! H% _
6 F% e/ W) G. k# V& ?4 F
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:" {3 h1 L' z6 M
, c) k6 o9 I, k( E
<html><head><script>
7 S4 e) Y% M( `3 ~) l8 jfunction 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 \& @" u" e$ K& l( w, H3 Avar sJsCmds ="" +
0 ~  S0 l: v: v. 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" +/ k8 j; A8 o- x2 H) W
"";
% `" M2 `* H# A- Y2 }var s= Carbosoft( sJsCmds);
- H" N! p  e# K3 F8 y1 ]) Jdocument.write (s);5 k: m, `9 |- D& A# @1 [7 h
</script>" t# u' I& r2 U9 W
</head><body></body></html>5 ]% d$ y, w5 M: G! ~

6 S8 E4 \: z5 j  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
* V0 S0 B! e$ N: L) n0 l8 {! W: I# y
) |/ u9 {5 i" i* ^<script>
8 L  t+ j/ o# s- n9 n6 {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 ); }
$ E+ ?# t- p) |2 `var sJsCmds ="" +
/ v- x2 J' d: l) Y6 a8 T* s"?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" +
, ^6 ]: S6 f, M7 D6 s"";
/ e, ?  r; a! a. Nvar s= Carbosoft( sJsCmds);( E- K, l! n4 P! N. j- g
</script>! G0 o+ t" V. `, a
<form name=qq>
6 M" y4 y5 C2 f3 D<textarea name=ww cols=100 rows=10></textarea>
1 W+ H3 G7 i5 i. A  A<input onclick='ww.value=s' type=button value="解密">( W4 k. V2 J1 ?1 d
</form>; E, R; p# U- X! y

% \1 M  }( C1 Q2 G4 q
# t3 b4 W! t2 z1 m方法三:
/ N9 a6 ^# k6 V$ v- n' f) ?
# r9 E1 ]3 y9 p" Z  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:9 T) J' V- n' l$ o+ k

  X3 G) H/ A2 V+ ~, L, C: c$ G/ _<HTML>" n  K7 Y% ?) P
<BODY>
" s2 D, A: ^0 w9 g' p! c0 `; z* X<SCRIPT LANGUAGE="javascript">
# I8 }" Y5 y6 n% ^. J0 wfunction Decode() {6 {& W- c9 @* B( C
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;}. Y4 {. Z2 g* ^; J' X
</SCRIPT>
" U4 P- d# ^' I<SCRIPT LANGUAGE="javascript">
: @5 w! [8 H$ L+ {function d (enc) {document.write(codeIt(key,enc));}( u4 B, R  r4 f9 e: 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;}
- i7 n# R  v& k. I</SCRIPT>, b( I' D1 Q7 E1 T
<SCRIPT LANGUAGE="javascript">
2 G4 d5 s+ Y7 W8 d" i: L; mDecode();0 O& `  ~# S/ b- z: t6 {
</SCRIPT>. }3 h7 u" R9 n4 k' |
</BODY>. r, s  |, d1 C( @- c! C! p
</HTML>5 Q- k2 R! N6 ]+ l9 n
, ~# B. L9 ]0 `8 }
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:1 t: N9 g5 ~! Y% J& w

# @4 m" n5 M' f<HTML>/ x2 P7 ^4 T( G5 m% m4 y9 a7 h
<BODY>
& Q. y- m+ z! e5 `; f9 Q<SCRIPT LANGUAGE="javascript">
& Q5 H. A/ t! Z% cfunction Decode() {- j: J: j7 T: }# O& i) Z/ w
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;}
  s. A2 e. ~' t3 f' }</SCRIPT>6 F2 }# O+ A/ M6 W! r4 v! ~
<SCRIPT LANGUAGE="javascript">
/ o/ n0 B: r  k( k" @function d (enc) {alert(codeIt(key,enc));}
: v9 Z+ f& m: a1 m% P& Tvar 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 ?; I' h( q" h* f, ~9 X9 ?</SCRIPT>  f9 p1 p+ u* n2 f7 f
<SCRIPT LANGUAGE="javascript">
: x0 p$ i$ F, eDecode();0 m* T2 |' Y& R7 x* w
</SCRIPT>
  t) E; P. p+ t: \2 x5 `. d! Z</BODY>
. U9 e5 d( s4 L; h5 `</HTML>
& I; }* H9 }8 }4 Y9 ~2 G% E6 D7 l# ^3 t2 y
  哈哈!!:=)是不是很精彩!!

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