返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!: v$ C3 p8 N, z5 {0 H

: L+ L7 T$ R" j1 T; ]+ z6 p9 c+ f  M; z! V. z9 N1 |
方法一:
1 ~$ V; g) i& V  P/ E; b8 S# I8 g* `# `& f
6 k7 J/ Y2 I* S7 `; [# |, |; M
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
) \( U5 ^% L6 ~  N4 A$ X$ P! l4 H; g1 T# Q+ \/ i
<HTML>* b* ~3 ?7 O4 t, f6 g
<SCRIPT LANGUAGE="javascript">
9 x5 m. q2 d, i& Y1 X, Evar 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"
4 h8 A/ X' r, f( h3 T; J( Pvar NewWords;
! t7 R4 _( ^1 O% U9 ?NewWords = unescape(Words);& E4 l3 R5 {' J7 `
document.write(NewWords)
# B& f1 R- w  M' y</SCRIPT>" }0 M- O9 G; l, o
<BODY>
8 I5 S2 L& A  Z- Y# c</BODY>/ P7 E! r8 S, P3 J5 a3 u' Y0 T
</HTML>
- o$ Q" o% ]! F
+ _% G. o% m! N0 v3 r  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:& b: G/ Q- t1 p" {6 l5 I3 A6 y! R

0 K" \) a: D3 v<HTML><SCRIPT LANGUAGE="javascript">* L9 V0 O' O+ O! S. V9 q' y
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"
; v+ j4 R  B9 g- b8 R0 k  jvar NewWords;
. @9 k. {8 B+ w) h6 T: MNewWords = unescape(Words);! K3 Y+ |+ c3 {0 ?+ `# c0 h1 |
NewWords=NewWords.toString();8 p3 W+ x! G; k: u  m# c0 U
function password(){* D" e  E) i* v! |' U5 j
document.pw.txtpw.value=NewWords;
$ D* Y! d; r  W# N* c( h+ e3 Z/ N}
) j. n6 q: C; }- q9 a9 Z. P</SCRIPT>1 ~0 w( M; j8 P  F- @. z
<BODY>
7 E) D1 G# B' o0 }' w  P' s<form name=pw>
9 r' w$ d0 l* z7 P: k<input type=button onclick="password()" value="解密">6 ^7 g% Y" o6 m+ k) F( Y9 t
<br>
  E2 w0 \1 @2 Q% Y' u' F$ h<textarea name="txtpw" cols="100" rows="100"></textarea>
5 r& f% i; k- J  o5 c, S5 C; Q</form>0 _! j. q  }! g, s# P& v/ p' e
</BODY>
+ @* M0 c3 ?% U- d. L1 e4 T- Y3 V</HTML>8 r) p% `) U2 n- @
; S' l! R0 W. ~% b
方法二:% H% E( o; d- B
5 N1 x$ n" Q7 l0 I
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:2 ]% n, \" Y8 m3 `! t7 ~

, c3 q1 ~- X! Y<html><head><script>% Q( z, s7 E, m* @$ _
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 ); }5 P7 p8 w9 c" H7 H' f4 Y' j
var sJsCmds ="" +
/ i4 u# i( \' Y"?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" +
! }! ^' d- `% `/ R"";- Z6 q; q$ C" e- }- [+ ~
var s= Carbosoft( sJsCmds);7 s* M/ e2 [2 L. ~/ b: @
document.write (s);
! s) E: l7 u! f9 g4 K* ?) C</script>+ p' `( d5 o, R5 {! \, E
</head><body></body></html>
( N+ K! r( B7 I2 ~$ p' r6 v
" k7 n# d  }' M$ h6 X  H' ?( l4 B$ P  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:: d6 d8 S  P6 t4 a' ~

$ c- x& \% Y1 B% V# u) ?<script>) W9 W5 e6 |- e9 x! Y, v
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 ); }6 _' k7 W( q* A% C4 ?/ t% G+ H8 y2 A( r
var sJsCmds ="" +
$ V, h, k+ x+ ~& a1 M  N( h$ N4 Y"?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" +* M( I  Y+ }2 G3 u, k( ?1 s* G
"";9 ~/ ?8 h) A2 }' Q" f% H
var s= Carbosoft( sJsCmds);
# U* i( m2 f1 v3 Y7 e% u: L2 \" ?- c( T</script>
1 U( f; ]4 @# {6 j) ^5 U<form name=qq>
9 Y9 j- [8 l0 w+ D5 `& n<textarea name=ww cols=100 rows=10></textarea>
7 N2 y" y- v$ e) g: u5 S; {<input onclick='ww.value=s' type=button value="解密">/ ~1 j: d4 z0 H# C
</form>
( J7 D' t# m4 f; n4 t$ N  I: P- p9 b9 O6 R7 D! |+ y
( K8 q4 G% i- D8 u  x1 y
方法三:) _' d- }7 M, M% Q2 S* g" v0 D
: Y* X: K! D9 a0 W1 w" ]
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
; Y7 b5 w! v/ y9 y/ [0 W
& X( ^, P2 N; k/ i/ B<HTML>8 X* L8 `9 P- Z/ n/ Y2 a% C; [
<BODY>( [- z5 F5 l( {' E$ I
<SCRIPT LANGUAGE="javascript">
0 I- w& r9 O/ X" X+ e) _function Decode() {2 H+ D$ y1 U3 M5 Q: j
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;}+ D: ]2 u4 F# ^' L4 T6 M) o
</SCRIPT>2 f/ D/ f" Y2 C+ w2 K
<SCRIPT LANGUAGE="javascript">. }3 }. ^" X2 U5 a& N( M! Y8 Z  }; s
function d (enc) {document.write(codeIt(key,enc));}
* A' ~/ P: o1 ^, 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;}
& g9 G: E$ _3 z1 f* ^</SCRIPT>
, U, z; Z6 ~7 o! q0 a<SCRIPT LANGUAGE="javascript">
) ~, p6 K4 s$ Z' }, aDecode();% w9 f2 N9 W( l5 L5 K3 w
</SCRIPT>: u4 b0 P  j6 A0 h* O
</BODY>
4 {( s! n. |' ~# {- r- V6 V</HTML>- F8 r  {: o( z, t" w/ J& b7 _2 Q
! ]; T. g1 t: r; e. O9 y2 d
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
! t# @8 W2 K; R7 m# l9 j$ ^" N* y: S# E! n/ p
<HTML>
& B, }8 C" `- i/ X5 h0 ], v& y<BODY>: Y7 j) Y' n; b# _* e$ y) B" G9 A5 X9 i
<SCRIPT LANGUAGE="javascript">
) D  A' @' @( S3 D0 D0 [$ zfunction Decode() {
. p' J, a& X' ^% Yd("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;}
2 f4 x3 |" i% B3 K. {9 y0 {</SCRIPT>
% E8 s& l! ?! e3 s$ A+ K<SCRIPT LANGUAGE="javascript">1 {0 [0 U1 }- z% K+ }' }; x
function d (enc) {alert(codeIt(key,enc));}. x7 O, W) x  y
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;}) ^# T3 d% _; D0 B
</SCRIPT>
/ x( ]% j$ o# m9 n<SCRIPT LANGUAGE="javascript">
! x  z% H* U# i2 D; v; uDecode();- P5 `  K1 w8 M$ m3 {4 D% J
</SCRIPT>( }3 z" Q" ]# y$ a# f: w
</BODY>
( |2 h) w& j+ p, W3 |9 C; [</HTML>8 z2 L) S# G1 L0 N% T5 O( e; l

1 t. h) J* Y' k. {2 h  哈哈!!:=)是不是很精彩!!

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