返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
( B' m5 S- a& s. I
* o5 U) Z# ~( u' P5 {# y1 R0 ?% }# }9 j0 n! w1 O
方法一:
# |. C! p) j/ p) L: U$ u8 I3 i2 \
! a6 Y0 A3 i/ J+ Y: e" s# ~, H% e" z6 h, R+ Z( ]# {" x
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:/ e0 U$ g+ H& h1 y/ T' B  `6 {& E

% C5 I3 D' R1 O- o7 E<HTML>
) X& \% v" `( T<SCRIPT LANGUAGE="javascript">4 Q" X3 N. h- n. I( a* n
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"
8 x6 H# ?3 b, d, X$ Jvar NewWords;, t" d9 v+ Y7 ?
NewWords = unescape(Words);
2 o2 R2 {/ O& o5 c" G( Kdocument.write(NewWords)2 p+ |  W9 J! H. ~& Z2 O' d
</SCRIPT>
* y& B/ j9 T' C8 ?% K  I7 f<BODY>
( |$ `6 `0 j! d</BODY>' w  M# |! M8 o
</HTML>  S. q  u4 [( z1 G

8 \/ M- W8 @, v* F( X5 ^  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
& b* F7 M4 S# B) Y' Z' Y1 {" D) {$ ^. W- S1 n# S
<HTML><SCRIPT LANGUAGE="javascript">4 q8 H; A4 o. t: J. V3 Q1 J
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"- U5 r  u7 R. v0 {4 Y. K. p
var NewWords;
$ x4 f& u, _( [9 fNewWords = unescape(Words);
* V3 c' Z7 A* ~5 r! r6 @NewWords=NewWords.toString();
& F$ e9 ^, D3 v- O2 h4 Jfunction password(){
+ U. V$ i% {9 J2 Bdocument.pw.txtpw.value=NewWords;3 \3 h/ k+ c3 S1 d3 [
}
7 t( O3 ^# m, a7 |</SCRIPT>
/ N  m1 b2 R- b6 T+ l. T<BODY>
9 U( E- g# a4 K" D- |<form name=pw>8 s9 x" A9 B- a9 O$ N
<input type=button onclick="password()" value="解密">
3 A0 i' ]; a  M5 c+ ^: k) u2 o<br>* o, G% `! i  i) I
<textarea name="txtpw" cols="100" rows="100"></textarea>
$ L3 T& I, I* M3 q. t</form>
7 H5 r, |2 c/ _</BODY>
" C/ B3 \0 @1 q! _. {) |8 I</HTML>1 t2 `0 U0 w3 I% \/ O
4 b* y4 d3 _7 H  G3 l
方法二:
: i' l5 \) X+ d9 x8 @: w: g# _
& H+ }8 l3 V) B  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:: r" w* ^& G, F( W$ k
) p7 N( ^& S& F; C' x" C
<html><head><script>
) i# p) s8 J6 u3 |1 Ffunction 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 ); }
0 D: h: g7 P1 A, i. H/ I  Z) f1 Zvar sJsCmds ="" +
3 ]- R& M  M; _1 _" J3 O* a"?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" +$ x% @1 \( v$ J$ H. W( T) {
"";
$ f2 I3 H8 ^7 n" v! X9 Q( [var s= Carbosoft( sJsCmds);
6 n- ^; d) l, y* \1 j! y* K% fdocument.write (s);# f/ w  r" j) [* y& v6 Z: G, K( H
</script>
  s% k" [% j8 A( W. e</head><body></body></html>
/ w6 y* X3 i1 e  a% e! [, q) U. D9 X7 [9 A2 o! {" u, A% x
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
: o* k  w' ?0 X# J2 T4 p& |" Q* B# Z' f$ l
<script>
  ]& A- E" s- L* L7 [! M  Lfunction 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 ); }: s0 X6 N; X" u$ u
var sJsCmds ="" +# f2 d* D; D; S" ^$ y7 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" +
; J' t, y- x8 G9 C" s"";- r) u+ y" E" _) T3 E8 n
var s= Carbosoft( sJsCmds);2 N' F4 Y; @! n5 I+ }$ ]9 O
</script>3 o3 n# _- u  \8 e
<form name=qq>
: K5 b+ v/ K, K. y$ Q$ A<textarea name=ww cols=100 rows=10></textarea>
3 ~9 R+ u) z' j; Q/ n6 z<input onclick='ww.value=s' type=button value="解密">' P6 u; ~3 ^3 H, a% O# A
</form>& [7 `; {! x  d' N

" Y) e0 ]5 `$ C6 O; T) V& b* \' N* ~' G  l
方法三:
  l9 o2 e  u" t; P- l7 `
) }; V' N3 E# i$ G  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:; @  f  u$ n' i0 I) c8 V3 U4 q
: d/ J$ r2 A" P) l" ~
<HTML>) V" m) _, M$ `# x- l
<BODY>; o9 B( T' c. U& B# F. a
<SCRIPT LANGUAGE="javascript">; p1 ], Y3 c0 s' K8 \) g
function Decode() {7 \# L7 l) ]/ P7 ~6 P7 s5 [2 O
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 u: [! M) E+ I! X6 t1 F) R/ X
</SCRIPT>9 D; h! X0 `9 a) ^4 S
<SCRIPT LANGUAGE="javascript">
) O( B5 @" |' D! p1 k; u4 Vfunction d (enc) {document.write(codeIt(key,enc));}
; H3 w( j- Q% y  F" @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;}
$ D; ]5 U; C' `$ S; A, J</SCRIPT>
% O) w% V3 d. T1 i3 T<SCRIPT LANGUAGE="javascript">! r& F( _: i, n2 y- ?6 i
Decode();7 ?' T6 m( @. ~: b4 r) @
</SCRIPT>
3 Y" M* `- d0 q/ [- {</BODY>
# z: j2 m) F% e</HTML>
6 y) U! _9 r! t2 Y) i$ c5 v! p0 z- Z
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
# Z; J; D0 b8 i0 E
- ~: Y9 P9 n& M2 u/ D<HTML>
/ J' c+ H; p# t/ _; q2 o<BODY>
4 d' S. m" Y7 O" Y" k" e<SCRIPT LANGUAGE="javascript">
: s, O* K- t1 P& F" O1 o5 N! Jfunction Decode() {
& N$ m' }) l: i; E2 ~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;}$ z  I6 Z' W! a; \" O$ X0 ?1 T6 H
</SCRIPT>' J  h# z, Y. t) E. ~& e% {
<SCRIPT LANGUAGE="javascript">8 h- T, _/ X6 n3 R% @0 J- |. s! i$ z
function d (enc) {alert(codeIt(key,enc));}
# ]1 H2 k7 g1 C. }0 o; \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;}1 i  O/ ~, k3 Y, t1 J
</SCRIPT>
/ C1 n, }9 I8 j% \# E' G<SCRIPT LANGUAGE="javascript">" @5 {9 k. T" R
Decode();) {( o3 `2 Q7 z" Q$ M9 M
</SCRIPT>' D" v0 K1 }8 a" t
</BODY>" S4 ~0 P! I( p, A- Y
</HTML>
, u3 z$ e" w1 T' }0 J* o! }; _  m( W5 t8 R: o
  哈哈!!:=)是不是很精彩!!

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