返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
# T7 ?0 _$ u* u0 u- [* q1 z1 j# z9 r1 U% o
2 F" O4 K) E$ G, u( z
方法一:/ R. e& J" J  J
$ ]3 m: Z4 S, X! H
8 F) T! D# u# w7 I
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
3 B# V$ ~/ C4 u; O5 m
: d; Y1 q. \0 x( L( u5 N<HTML>
6 o- ^+ |4 _  x<SCRIPT LANGUAGE="javascript">% B. G, W3 b  [4 `% M2 d
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. j2 L+ ], Z8 ]& O
var NewWords;
( @, Z+ D) k" W1 s5 L* H8 R, sNewWords = unescape(Words);: b$ e" `+ P  @8 A7 \
document.write(NewWords)
3 F4 i6 w- E. j5 _" I, B" T</SCRIPT>
" d/ R" M, k* ~<BODY>, H& J" Z* P- X' E. o* p" }
</BODY>
/ X* n, i6 V0 m% U, X</HTML>
; `" i; v0 H/ F2 k
; z  J! V( P9 l  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:$ l/ q6 U7 p0 o

3 X8 J/ b; r4 L3 C/ d; ~1 d<HTML><SCRIPT LANGUAGE="javascript"># r* ]  R5 v" {4 B) y+ a2 ?
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"
: a5 E. c3 ]+ o$ \var NewWords;
5 H4 e) P  d" R1 M; r3 T' QNewWords = unescape(Words);
, j- [5 [. G: b2 RNewWords=NewWords.toString();$ ^$ H6 h. _8 j$ C' g' p
function password(){) G8 \1 Y; @( I1 N7 f9 w0 k
document.pw.txtpw.value=NewWords;
0 R) n' V) O# w( K! u1 ]}
3 H9 [$ F: H( ^3 Q</SCRIPT>, R' d- l6 \8 c$ q4 r
<BODY>
3 t2 G! |( b1 O1 V; U: [- l0 m<form name=pw>/ J* W* O3 J, J' T6 O2 u
<input type=button onclick="password()" value="解密">
9 j: n3 A( w- q1 U5 M5 P" y+ `- B<br>8 Z- g8 l" D' k* c$ t" W6 W
<textarea name="txtpw" cols="100" rows="100"></textarea>  b9 l) Q8 J+ L9 K7 u1 |
</form>
0 y  c( Q7 I2 _0 F4 w0 X</BODY>
3 ]( d+ s1 {7 @- r/ ^& B3 j2 b0 x9 L7 G</HTML># J7 L" m3 @, \! E7 _, `% I( b
9 \. H; H5 y5 ]6 j& U8 n& {: F
方法二:# w4 t1 n" P8 b+ H5 D$ u

) y- I$ t1 v& n9 i7 a  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
) B2 J/ M/ \7 U7 y+ M7 K& Y
" v9 y) z7 ?6 p( {: P5 p! |/ s' l<html><head><script>
+ R! \  p& U) S' q" _4 Z; m3 H; 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 ); }
. u! r: S; v* Y" e+ r" a: Cvar sJsCmds ="" +
$ ?- k# Z* b' m5 |3 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" +
9 V  N/ i# Y% ?) P"";( _2 {, `0 C2 G5 Q4 A1 b0 u$ q4 G& t
var s= Carbosoft( sJsCmds);3 r. v. v; l+ E) |4 P
document.write (s);
0 v" I. g+ w  A( @+ u7 K! |/ E</script>
  _7 Q! y; ?# q% X+ B) m</head><body></body></html>
! \8 I6 D$ G  A1 p, v3 w5 l* V, ^7 ]$ i- K% M! ~
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:4 n$ h" F: Y  z; E) X
  V  v# v  _) J0 n9 ~9 g4 z
<script>
: s. a1 B1 U* K) r9 j5 `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 ); }
" ]) {0 j9 |, \9 avar sJsCmds ="" ++ j: y0 D3 d' o5 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" +
  C7 N1 c% q) D$ h4 D"";( T5 d) J8 R2 {6 [8 p
var s= Carbosoft( sJsCmds);& H9 i( N- ~. w+ W/ g/ E
</script>
7 q  O7 Q+ B9 W! ?1 j* b<form name=qq>
" N9 `6 g2 K: K7 G2 \) p<textarea name=ww cols=100 rows=10></textarea>
( n" `7 v9 G$ Y2 Z<input onclick='ww.value=s' type=button value="解密">
4 y5 F- l! N& u/ J4 `</form>. ~8 j$ y+ j! x; D8 B

7 q4 @* ]$ g' {; e& k" V+ ], h5 v, E+ `, b2 o
方法三:8 |, i* ~: Z, z/ R; M) {

8 l1 o; E( o' M. m  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:+ M# t9 }4 l! C# S/ P! u

) N4 l6 I% v- B$ o( H8 w# b( E7 `<HTML># n, [" D1 q/ `% f" j. K2 z
<BODY>: {8 n, U0 B' l3 C9 U% O$ l
<SCRIPT LANGUAGE="javascript">
9 L* m! L% L! O4 yfunction Decode() {8 a) L+ p8 j1 X( m/ u- O" D8 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;}
! @) e2 A7 Y. s5 X" P" ^</SCRIPT>
0 {- U; D9 B+ c/ n" P9 n0 W<SCRIPT LANGUAGE="javascript">
# J( X- G' G9 E0 xfunction d (enc) {document.write(codeIt(key,enc));}
+ @, `( x0 E* |2 U; evar 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;}
) L9 [! O* @3 b2 x4 D</SCRIPT>& L" l) S1 g& [4 y+ m
<SCRIPT LANGUAGE="javascript">$ y5 j- j; x7 g/ {  o( {% t$ H' `0 `
Decode();' O  X1 W- o$ E( T4 }6 N* V5 ]' P: d
</SCRIPT>
& C  W' w1 i% ^0 z( _</BODY>
2 S2 m1 H# |* A7 O4 E: ]3 l</HTML>
* r$ ]" c2 i. l' Z) s( k5 Y4 E/ e2 p2 f( ^% K
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:% o, u2 {. q2 B. e8 b2 L. i

+ U' r' U. y8 ]8 Y4 ]- S<HTML>
( I  _# O5 y6 @6 ?* s<BODY>0 l! o) O& s1 f$ E6 Q
<SCRIPT LANGUAGE="javascript">
$ E( z% y. n  p) L0 jfunction Decode() {
, ^2 @4 l8 c0 Z6 B3 L1 Q$ [6 l: kd("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;}
/ K* s% ~. V' x$ }4 V6 t</SCRIPT>; T0 J  R+ `3 ]- }3 M" n
<SCRIPT LANGUAGE="javascript">
; X# @; }* m6 ^% t+ \5 Ffunction d (enc) {alert(codeIt(key,enc));}' T9 D: J0 v7 u+ F$ _( t  j
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 N3 W/ y* I7 ^" s, H+ [
</SCRIPT>
( o' y7 u' Y3 T' C* K<SCRIPT LANGUAGE="javascript">/ @% e* V' E; W
Decode();
0 U, X0 w- g, F4 _1 f</SCRIPT>6 Y% H/ d, V( j+ s
</BODY>' o/ f# p: M# n  B- ~" h
</HTML>
' l8 h0 r; f* Q
# w# b5 r! F8 f  k" r8 ^4 o6 E6 c" c  哈哈!!:=)是不是很精彩!!

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