返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!8 p  M' y2 W2 Q) f, M

1 X' L% O; Y3 i% b+ ^
+ n4 m- C0 T* C6 K6 F& j- b方法一:
3 g6 ^7 V. N4 ~. d7 @7 H. M/ x7 j% Q  C  P& J& T
2 U. q0 r. C! ?# y' H
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:. V+ x( O$ N* W4 U+ _

7 g/ w9 o9 U* F2 c8 y  [! W<HTML>
! f) r% R8 W2 t# z) R% B7 }<SCRIPT LANGUAGE="javascript">! \5 r; a- p- }0 m  n6 W: V- V9 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"/ u. f& J' X" ?$ d* }+ M& G, Q
var NewWords;
$ c5 n$ M, [4 M5 d4 `8 E3 i" wNewWords = unescape(Words);+ Y4 H8 {, u6 ~& u! j% F
document.write(NewWords)8 k" B2 U: T- a1 F
</SCRIPT>6 j+ {( A; X- r1 Y$ u
<BODY>! w& @; t8 @' ~1 s/ R
</BODY>
! o# Y# Q5 D  U</HTML>
1 V/ Z5 E8 j6 J4 E" J& {9 [" T3 A+ t6 O' w
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
( ~8 d  W6 ^; |
  A! M, @- C, Q) Q+ k<HTML><SCRIPT LANGUAGE="javascript">. Z$ I7 u! B6 C  c: z. V, ?
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"6 U& d: h- D) ~6 C# r
var NewWords;0 k- u; i6 p4 m" q4 {# R
NewWords = unescape(Words);
. H' p- W1 K9 S+ w8 o4 N8 V0 Z& r; RNewWords=NewWords.toString();
! x" e! @$ h! ^function password(){; D6 K5 H* T0 \4 o; |1 g
document.pw.txtpw.value=NewWords;
) w5 G2 p6 X1 a( n/ X5 |8 u}, }# t% O7 Z6 Q0 }' O4 h& H( @* R
</SCRIPT>
+ O  _8 R3 V% Y- n  @( @<BODY>  X' c* E' {* m" V8 X( _5 f6 X
<form name=pw>
2 ?' `, l) U) H# A<input type=button onclick="password()" value="解密">
5 |4 K/ T2 B/ t! M<br>
  H; V. x5 [8 z7 |<textarea name="txtpw" cols="100" rows="100"></textarea>) C5 p; h) w, s4 A' h5 n9 Y+ E1 s
</form>+ Q9 L0 ~& l: H
</BODY>
- g' \2 F  }6 J</HTML>
7 ?' d( O) r7 q. X0 l7 R
. i& c$ C* }0 |- I! a& ~# s方法二:" K. G; P) ?9 ~
7 T8 F! ?) Q# f5 P
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:* G5 w( |9 v" X/ T0 ]  M

) [8 U2 b5 Y1 \<html><head><script>9 _0 |6 U  U: }; P0 u+ L, |
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 ); }
. ^, [: D- e  x0 }$ Jvar sJsCmds ="" +
3 ?& R- ?- z- H  n5 B- \6 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" +6 q, d( E3 K5 M4 I
"";
" z! ]6 p) c! k  ~+ _var s= Carbosoft( sJsCmds);
- V3 j/ O! i# p2 odocument.write (s);
: V- z7 ^, i1 C) y* h5 F$ A' l</script>
0 [" A9 N3 r% E( n</head><body></body></html>
3 i+ W6 V1 S, p) s$ r
6 |; v* ^% W( J- Y! p1 ~6 l  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:5 D1 k; U3 O+ x
" p! e, ^6 K: O" a! j& y
<script>
9 p( X1 M& 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 ); }
0 d. }$ C( j9 l4 D3 B: {) q( D' nvar sJsCmds ="" +) F2 R" h0 y1 [* }2 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" +) j9 c' d4 h" [  @
"";% i; i% [6 ^6 v; O5 r! j7 G
var s= Carbosoft( sJsCmds);. v5 u1 }5 N8 K
</script>- \; [( R: `( _9 q$ J
<form name=qq>! n  s6 N/ h) Q) S9 G
<textarea name=ww cols=100 rows=10></textarea>3 d- _/ W1 r/ I+ l$ _6 v; c
<input onclick='ww.value=s' type=button value="解密">7 i, K4 B% I+ \. j, Y3 m
</form>
  f# J3 ]  F! y0 f; q% U0 W+ s$ I& ^$ Y/ h6 ^8 d  j) C: f) i5 n
% E5 d7 \; w. E% f+ s
方法三:
: e. [, W0 w0 ]$ f3 G
9 d0 i/ a4 R$ [2 O8 u2 \; a4 \  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:9 n. e: O. X0 t% }1 }
  |; ~1 p8 ^2 d6 C6 u6 D% Q$ D* [; O
<HTML>" Q8 Z3 ^/ u# `( H
<BODY>
: q& N. _. w, [* `<SCRIPT LANGUAGE="javascript">9 n2 ?$ D$ J; ?
function Decode() {) e3 n2 e8 ]; h0 h9 p$ b
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;}
* }+ A/ D( Z' y9 \/ `</SCRIPT>+ r5 p$ V% z( e/ ~( F: x, \
<SCRIPT LANGUAGE="javascript">
) u1 A7 a8 r: C* afunction d (enc) {document.write(codeIt(key,enc));}
! B6 l; ~5 u  w, Yvar 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;}5 V! L; N5 ^# o9 W/ i! n6 f/ [
</SCRIPT>% p# E$ d9 l* j
<SCRIPT LANGUAGE="javascript">
/ D9 Z$ x& b1 t# Z( k! KDecode();
; H% V& ]3 s$ i# B& o: G</SCRIPT>
4 p' z9 K2 W0 q; o# |</BODY>! I+ v7 ~- T( a
</HTML>
+ y5 p* k- M  F* N! |9 z# x# i+ o. i! W. E3 Q2 F
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
( c, |5 ?0 c1 C  j
. g: Q1 T, Y- y' C/ d" }6 F<HTML>
' Z" f$ T* O* D1 b$ E0 ?9 ^<BODY>/ P0 O- m8 Q! V* d
<SCRIPT LANGUAGE="javascript">
5 \& l3 o" q  r) |function Decode() {) K# Y9 m. \' b  c/ z
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;}
. v& E9 E, u1 H6 y5 O! V3 U7 f</SCRIPT>
1 |, n+ h  Q& ?+ S<SCRIPT LANGUAGE="javascript">6 c* r$ x& y9 W3 F9 G1 d
function d (enc) {alert(codeIt(key,enc));}) o. {2 Q6 F0 C8 K* b* q: ]" [
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;}  u6 R, ?" _& t$ v1 C8 O- J
</SCRIPT>
- [0 J) j1 i5 l<SCRIPT LANGUAGE="javascript">
4 o  a& c/ ]( i/ \/ `Decode();' p7 t. g% A. i$ }/ ]  O
</SCRIPT>
/ N3 k) @3 m) d4 k+ h& v6 j' @</BODY>
. S  a. x! H/ ^, r. f; I/ S4 E</HTML>
2 k; Y+ ?* M( ~* D; I; Z/ b- H9 @' @1 m+ h+ ?3 x# G0 N
  哈哈!!:=)是不是很精彩!!

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