返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!5 P+ }; r1 M6 n( A3 l- `

4 L2 d; N; w% }
+ o7 ~4 z$ Y2 w' e% t& i方法一:
1 t$ W% g4 |- [& @
' d! G, n# o% k, u7 |9 ?: P' v6 {+ W
% \/ m/ }  J( A" ]* R! k+ N/ K  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:6 L# w2 ~" [" z8 @+ o+ O  r

+ ~/ U: O- B- y7 A& Q. n<HTML>
" Y% R* R9 P2 `4 h4 }<SCRIPT LANGUAGE="javascript">  m/ S# G  W  J  M
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"
. O1 C+ U3 h' o% j' i( avar NewWords;
& s, o1 _; Q* C" q* M9 k' ~NewWords = unescape(Words);5 [& y) b- j6 l6 l
document.write(NewWords)
0 v# q% L( O( r4 {! H</SCRIPT>9 h" k! \; I6 K
<BODY>! x( \' F3 m4 c8 }" E
</BODY>
- E  x- E  G- a7 K" t</HTML>7 e5 ]; T& m9 q/ A- _
* i: d( y& t, u! x* P: r' |
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:' B8 C$ d. F8 ^- }

1 `  h: |+ U) ]+ c( u* a<HTML><SCRIPT LANGUAGE="javascript">
* g8 l5 Q9 q4 V; B$ r6 V$ b9 ]# tvar 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"  y: n5 k; V$ w! C, t
var NewWords;
& k' p5 U3 o  F( t: |, s! K8 w, _NewWords = unescape(Words);7 ^1 ], J+ m0 S' w8 }: V$ V1 r1 {
NewWords=NewWords.toString();
' q3 Q: n* \# Y# f# Tfunction password(){4 I5 h6 ]/ p  {2 r6 M) y
document.pw.txtpw.value=NewWords;
0 X5 B6 Z* F+ n- G! d1 k9 x/ M8 T}
# e/ ?+ ?* S" j6 j( f$ n' V3 I# d* D$ |</SCRIPT>
, E# \! f/ {8 G<BODY>5 `4 z* M5 f9 S7 K8 \4 a1 c* ~' C/ S
<form name=pw>$ h% f/ T1 p( |, t3 r- {
<input type=button onclick="password()" value="解密">
& ^' `, O& s+ {" w<br>9 L* \2 d6 t1 x6 j1 ^& c9 n* N
<textarea name="txtpw" cols="100" rows="100"></textarea>
8 Q5 z8 t2 i2 H/ N</form>! R) f" t  a) P" i  X
</BODY>$ H/ @4 R6 J) O) {  s
</HTML>1 r5 T+ t8 b) W- P

$ `$ I  x( e  J: D* S7 L5 O, a3 m方法二:" J9 ^6 _+ X! U: X0 Z
  \# R. q- T0 F
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:& D3 u2 K# `$ @: _7 A

0 s" i& v/ |4 Q0 R  Y<html><head><script>
& p% L+ X+ N& j4 y: F; cfunction 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 ); }% Q2 e, d0 a6 B) ?
var sJsCmds ="" +9 v6 M- J. \: v3 B0 I1 w5 d
"?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" +
) E5 `; A2 ?1 |"";  R2 v+ M3 X: j& c+ p
var s= Carbosoft( sJsCmds);( k( e2 e  H" Q2 j. \$ }# o
document.write (s);, @% _, X/ p% _& k
</script>
% G' V% {! t" B8 a. `</head><body></body></html>5 |# B/ `0 N# g

: M7 _4 I. R9 M, v& @7 `& }: J  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:& f6 U0 P) j" L+ H, d2 j

- u' s% o& n, l& a<script>
4 E( o: Y7 a: Z' W2 ?; @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 ); }+ k" S8 `% O* L& r8 o
var sJsCmds ="" +
1 c, }+ P6 ^4 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" +1 q1 s$ b2 [" U3 P
"";$ o, ~, o8 b+ J$ D
var s= Carbosoft( sJsCmds);
8 {8 k$ r% g5 b! n</script>
3 n5 x2 r2 F2 `% O2 |0 E<form name=qq>- \1 J, _; \5 G4 ]' u' k' N5 h
<textarea name=ww cols=100 rows=10></textarea>; v% M; l/ P' C0 j4 ]( Q2 _# E
<input onclick='ww.value=s' type=button value="解密">
4 Q7 Y. T; G' E1 m1 K3 r</form>
6 J* h/ J  i- ?8 O  p9 n! G; m, C9 Q$ O/ n

/ T) ^2 A& X; U" \5 b) l( o方法三:% E. K8 }( p; s/ T* b" z
  i8 e. V6 t2 C+ e
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
" h. E+ X  _. n9 f* [: I
! O2 T3 c2 y! ]% Q$ a<HTML>2 v- J5 o) V4 |$ ]
<BODY>
7 `: b+ T) C0 Q<SCRIPT LANGUAGE="javascript">
7 C, K! ~# G% N. X" F* [/ Jfunction Decode() {3 C; d9 r' I" x; `: 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;}; p1 K3 x0 H& v# D) b
</SCRIPT>
+ e- G; L4 A" {<SCRIPT LANGUAGE="javascript">0 D* [4 z" C/ g1 ~- U5 h
function d (enc) {document.write(codeIt(key,enc));}
3 ]# Y6 _' Y3 J" [0 i  F# Zvar 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;}
; Y4 o/ m$ l2 A</SCRIPT>
9 B: R! l  x4 [. Z% z$ q( n/ y4 Q<SCRIPT LANGUAGE="javascript">1 N& f) K% d; N; J
Decode();$ V7 z0 N5 }. I8 h2 q. q( q
</SCRIPT>1 A( N* ?) L; W  k; x* G
</BODY>3 f+ n) @7 o0 `% J  r6 @$ ~
</HTML>
& V' Y% B* v! `7 R# U2 p
/ A. g6 D- P& b; L$ O2 n0 _1 j  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:5 Q: P* j- ?, j! s( I! v! v( F

1 b" N- R6 x! {6 A4 q8 v<HTML>
- z; b9 w+ F; H  J5 C  q" g<BODY>
- b9 i% T/ U% j9 b<SCRIPT LANGUAGE="javascript">1 \2 r. C# D- b' H, g
function Decode() {  L4 E9 |" }+ T/ f; m' t
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;}
7 \6 M8 S/ l: W2 g% K</SCRIPT>( z8 R# U& E' }/ T. D- I, H- _
<SCRIPT LANGUAGE="javascript">1 S" S" w" B7 d
function d (enc) {alert(codeIt(key,enc));}$ e- s& A9 e+ c! ]3 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;}; {9 l$ X7 Y8 c5 K* ^5 V
</SCRIPT>) |& M& ~4 m; b" \7 d
<SCRIPT LANGUAGE="javascript">/ ]3 V, I/ |- _- _
Decode();
9 m, V$ `( y& L7 s: T; ?</SCRIPT>7 g# k8 ~" x' p7 p2 F# R6 P
</BODY>
; i3 `- G' `# E3 \) _$ h</HTML>, u' Q: K( z- W

% W# N% i& a+ \% e0 G4 f# ~  哈哈!!:=)是不是很精彩!!

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