返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
; _) X: b9 H5 P8 K
, H7 g/ d) B( b0 Q; x: k  G7 w
: D0 _- S  t8 @$ ]2 \4 F/ ]方法一:
5 _1 ]  E) _0 p+ J+ R; B  b; J0 n' V8 i" C5 |5 |

- w5 |5 r9 g' O/ N  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:9 Z2 f6 z4 X. Y4 E; _0 q
+ ?  J$ H! K2 X) A7 ~
<HTML>
$ l" Y) K' {% s# s# T! @6 B<SCRIPT LANGUAGE="javascript">
5 f; Q% M0 g- b5 C$ pvar 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"
5 l( g! c; [# Z2 dvar NewWords;& D  r) f# A6 m' A
NewWords = unescape(Words);
8 B  |4 y; j' Ndocument.write(NewWords)
* u+ Q: r: Q9 o& V" r. y0 W</SCRIPT>7 ~5 r$ r* t4 \/ L( N0 K% V
<BODY># }# @* C4 h9 q8 b0 v) W2 ]4 G& X
</BODY>
1 |- E& E/ k' {9 |9 }  R</HTML>  `, `& i$ O3 w+ j! r: I: E

- w8 Z5 e" l6 i  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
1 }  }+ w' h& \- a- [4 L1 R: B. c6 S
<HTML><SCRIPT LANGUAGE="javascript">2 J4 G9 {' z1 h, j/ o* M0 y* o
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"
% N0 G; B4 I, B8 |var NewWords;& h" \. w2 H) ?9 q8 o+ F( D
NewWords = unescape(Words);* U- }9 ^- U* l6 n3 C: ^& p, }
NewWords=NewWords.toString();
2 c6 c2 W* C) r7 \/ K7 ^function password(){
/ C' \9 ^- {8 R" C) t: Vdocument.pw.txtpw.value=NewWords;
1 M3 [* ^6 s  }: ~" a/ \+ ^) s: @}6 X0 U- n8 r! u! Z3 \9 z! T
</SCRIPT>7 y7 t# J& P8 a; B) R6 O; R
<BODY>
$ c: `9 a4 X1 D2 l* b9 K<form name=pw>6 c, S3 m. L' {
<input type=button onclick="password()" value="解密">
' m8 T& x) O6 J( ^% ^8 h3 C/ g<br>
& Z  l# L6 {. F1 r; J7 z% Y5 O<textarea name="txtpw" cols="100" rows="100"></textarea>! R8 W# E) A. A1 y
</form>5 }  _' l& R% h. Q/ M' c. I# D. s
</BODY>( }6 [/ `  U" e7 w& q: G  K: S
</HTML>' {- H* S; R6 f) v
9 [+ n6 A0 e! G. T6 J( y
方法二:# n1 w5 Q$ b* ^% C0 ^# I

2 p! n4 y* ]; Z  R& F5 C: M" x/ h  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:2 v* C5 \. O3 S; j
( W1 }5 I3 l9 s
<html><head><script>" i) @) p; @* t; Q: }
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 ); }: M; m4 h) Y) O& ^
var sJsCmds ="" +
/ X6 l! @5 K: l% R8 j7 E"?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 y+ U( b4 J- D* B"";
2 C. b0 j' T, \6 a+ o( J( Y. xvar s= Carbosoft( sJsCmds);
, X; M2 T7 d* ]+ x& J2 ^document.write (s);. C3 E5 W3 A! m) O
</script>
8 G& r1 |% v9 N* F- a</head><body></body></html>' p; k! i8 v. D; y7 `! r6 Z9 V
* \% D" g& {; W" o) q/ P8 a& v
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
/ C" }; r. M5 x5 r
6 j$ z9 `; h7 `; I1 X2 ]& T  }<script>
9 h9 y0 v+ z$ Vfunction 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 ); }
* w" w; z! g& Y& a* tvar sJsCmds ="" +& _4 M5 O* ~- R1 Y. e' V
"?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" +
" o% Y2 y# z" m9 v3 h"";; D3 C2 H; l9 X$ j0 y
var s= Carbosoft( sJsCmds);8 \+ g. ~$ D! K- d  n3 `
</script>
  r1 m! Z+ G: I$ S<form name=qq>
* Z/ _, K( h, l) v# e0 h<textarea name=ww cols=100 rows=10></textarea>
/ g; C( \/ |7 r  F/ y5 y. l<input onclick='ww.value=s' type=button value="解密">
  j8 B+ U" C+ ?; d- `; W</form>) m; U6 U# [/ q5 d

9 }1 B2 B3 K( z2 Z* O9 g
: I$ W$ F; j# b  U9 {方法三:* s$ p! e8 s! x

* e" z  J# H" {# ]( E  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:7 f7 W) j3 p. Z9 S

8 K% q1 n6 Z* @$ R<HTML>
7 ^6 q0 ]: y# l; f: e<BODY>
  H: o# c2 Q5 u$ l<SCRIPT LANGUAGE="javascript">
$ Q9 p2 k/ K1 {% Cfunction Decode() {
$ C* V) o4 y8 I, 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;}$ K. j, L8 O0 y# \: v! O
</SCRIPT>, O; G& H" U3 B& A" z
<SCRIPT LANGUAGE="javascript">
$ s2 _  r% y- Q( _( Ofunction d (enc) {document.write(codeIt(key,enc));}
5 M8 J- o0 p: v" R7 i/ Ovar 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;}
; b: _' l) b% f) Q+ |</SCRIPT>8 K0 z/ S; b2 b4 n( N! u5 |7 y6 B
<SCRIPT LANGUAGE="javascript">, a# {6 w6 f6 R5 F" \. K* `
Decode();7 v+ F, D4 Y" K7 U2 E
</SCRIPT># c# h8 ~' A2 H( a
</BODY>
5 `. y8 b! y' E. q</HTML>7 P5 J5 O. j! C4 }

5 _* c; I* B9 H. T  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
' |8 p+ t* T: j0 \" H' z  a2 p9 }& p2 c3 H( z
<HTML>
* Z+ q9 P9 e% \5 g4 }8 e* B<BODY>: g" D' i2 _' |2 `0 F1 s2 L; R
<SCRIPT LANGUAGE="javascript">
& a) j6 D5 z* _3 v1 o1 bfunction Decode() {1 `( L8 J3 f0 H; O7 S5 M  B: o! I
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;}
9 a& c9 l0 y8 x6 ]6 T</SCRIPT>
) j+ ~- j9 ]# A! s3 O8 U<SCRIPT LANGUAGE="javascript">
# A. s1 w- F: |$ F# `! Lfunction d (enc) {alert(codeIt(key,enc));}2 f* y0 w0 D' N( O8 t
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;}
$ b5 ]# O4 t8 e7 g0 d7 ?9 Y! q</SCRIPT>! v$ v3 g/ \' Y& T: g( ^, m
<SCRIPT LANGUAGE="javascript">
' b" v% M/ E  C# l. wDecode();) C% L7 Z7 V3 d/ q+ c4 J1 [
</SCRIPT>7 j0 x- o& i. R: P. v
</BODY>
' j4 ^' _9 K" k</HTML>' T+ o" t! D8 }$ p/ T/ U: \
3 X( ~# O6 r1 S6 N' S7 _
  哈哈!!:=)是不是很精彩!!

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