返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
' ]! A8 s# b& r1 V9 Q. K
& D6 M, w+ \1 ^8 L3 Q4 X" L7 Y  P9 w/ e7 V$ J
方法一:: {/ E( v7 K& W7 y5 A* l

0 M! F; @) f1 t" S2 B# @) c& R5 T: n" r" c& H0 R
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:$ T8 K6 z: i4 r" w

+ v/ R, v: C  n) j( J<HTML>( I3 Q# j# y; I6 t+ d
<SCRIPT LANGUAGE="javascript">
" O- O1 X# C! V" O6 H: ivar 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"
! W  O9 Q$ ^: ?0 v. e7 }  nvar NewWords;
4 B' X* E& _* FNewWords = unescape(Words);/ j$ K/ X! e) v3 q) B" F+ g8 ?
document.write(NewWords)
6 \' e4 M. k+ W- f</SCRIPT>
5 Z# D! V! Z- [3 a8 b8 w<BODY>
. |& u( b) S- l: E# E</BODY>% u! I3 R2 g( `, x5 d
</HTML>
3 D: X: h6 I4 m  I
( ~. n" K4 J9 \; T* X  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
$ d/ g8 T  ?$ H0 _) l7 v# o+ g# W- U3 \' W0 C$ r7 \& L2 f
<HTML><SCRIPT LANGUAGE="javascript">
+ u6 i) _  c4 t9 S0 l& [1 e5 Hvar 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"
2 v4 |) l' D9 B6 j7 S$ R% U0 qvar NewWords;
. K( c+ a  A5 d4 |NewWords = unescape(Words);. ]+ ?% }" z1 Y
NewWords=NewWords.toString();, l' O* W, l( c5 X5 s( C, O8 v( u, K
function password(){4 R, I& ^7 ^$ n8 E
document.pw.txtpw.value=NewWords;
% f7 [9 ]" i5 q0 A, b9 h+ h}" R: }3 n* z& Q3 s$ G( G$ k
</SCRIPT>* K7 ]- U9 D7 q& o% a
<BODY>
% s/ X: u' E6 H  l1 {$ @& H<form name=pw>
$ A1 n) p4 u. Y<input type=button onclick="password()" value="解密">
- D2 @0 E0 m% \7 Z  B  r<br>4 I2 e2 k: k; H( u7 [- K
<textarea name="txtpw" cols="100" rows="100"></textarea>
; G& o+ H" U- c2 x% U) g! ]</form>
# i6 b2 _8 L3 ?' r0 D: C' O% n</BODY>+ d2 x& Y# W2 {
</HTML>
: {8 c) d; F' y% T) E
1 K& g' A* V7 P1 |/ ?方法二:
6 G7 f3 S1 _8 _4 L, }2 @8 W. ?6 i# O8 A- q6 S1 K* G
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
0 U2 H2 C' W. o) d3 m4 q! R7 B( Z
; p" U1 {8 I- g<html><head><script>
9 o7 g5 E( X$ Y: ], U. 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 ); }
, ~' ^2 ]9 t( J+ x( z( k; T4 e; kvar sJsCmds ="" +
1 g3 Q$ R5 E( p7 p% R, d& V4 Q"?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" +
3 f: a, s9 O1 J5 ^"";7 n) u9 Q# s, P3 ~
var s= Carbosoft( sJsCmds);
3 n: I2 n3 ^$ ]$ ^8 K& sdocument.write (s);
9 B/ c; Z- A. t4 B! W( w% {</script>, i+ ]* A3 L7 S4 S
</head><body></body></html>
) }- a/ H/ J8 R) v" R# f
  D- l3 `9 }9 P/ ?7 _8 L& i& e4 r  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
1 G! ]8 l" k: e) K9 d8 j3 ?  \5 F' v7 J, @# L/ V
<script>
( C" [- g6 L6 m; f4 @4 Tfunction 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 ); }
( b- s7 c% h5 y' M* h: M5 nvar sJsCmds ="" +% O/ e" G$ X) o: 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" +
1 ~1 J: F4 V6 o; ?6 I$ l& m- X"";1 H5 g- b1 w( {+ b  @
var s= Carbosoft( sJsCmds);0 y3 U& W& l0 n
</script>" N$ e! A% |  d: v7 h6 l4 C
<form name=qq>8 u  S# k' R/ r" W, q0 R. K
<textarea name=ww cols=100 rows=10></textarea>2 e! N& X& P  z6 g1 F/ n
<input onclick='ww.value=s' type=button value="解密">
6 W* @! b5 j( U</form>! F% g% G* |( [: L, W4 n" {  E
0 t! L# O7 i; Q+ o
% ^5 l6 r$ g0 l( Z. x# Z
方法三:  c! n* R0 g! [  s
, C4 Z# s$ V, H' h1 T/ Q7 C! G
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
. D" m- H2 T5 X) `8 ^, G0 f& R6 r
<HTML>7 h8 a: Z2 X( Y
<BODY>& E& I4 C* n1 a. B7 K) b" a
<SCRIPT LANGUAGE="javascript">( y' @: p: j8 Z4 ~7 k  E+ }, M  a
function Decode() {
7 `1 {' G6 h# m' F1 W/ A  ^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;}
. \! W# e- y- d5 H9 P6 K</SCRIPT>- Q% q# k& l6 a- A) R
<SCRIPT LANGUAGE="javascript">- L, k& e$ y! A- E" n7 ]
function d (enc) {document.write(codeIt(key,enc));}
8 o2 S. o9 F. I' dvar 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;}- |* ~" D' E8 R2 u5 L
</SCRIPT>& ~+ D. v# x. ~
<SCRIPT LANGUAGE="javascript">: }1 G2 a* `% X* h) W6 @
Decode();
1 y- K$ {3 z7 t* X$ [</SCRIPT># P8 n) l+ S' R$ a% ^, n! X9 \& p
</BODY>) l  b8 N- Y2 T
</HTML>2 m! t" p! c% v
% v" V5 K, ~* N$ j, ~' j
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
2 E$ p! b: G5 `5 i) X; G5 z1 G
- F3 U: M' t; P' ?. ]  b( L2 K4 N  q<HTML>, b9 N" J' j* N, ^
<BODY>  |1 u9 z! n! K9 X( J" ^
<SCRIPT LANGUAGE="javascript">
* K+ X& d5 w; y; r7 I" Efunction Decode() {
9 u- _2 p* j5 N3 E) A' W& 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;}
; W+ i* E* r' q2 w, X9 b2 G3 _) Y/ a</SCRIPT>
# y  T2 m+ ~2 y* g2 m- y<SCRIPT LANGUAGE="javascript">& Y3 z4 K9 d4 L1 @) {
function d (enc) {alert(codeIt(key,enc));}
" v4 m3 U$ s' x* G: M( |( \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;}
* h6 u, e1 I# ?- h* J</SCRIPT>& }* _1 x' K5 c7 `
<SCRIPT LANGUAGE="javascript">
& w) M$ ~, A/ M0 wDecode();8 b- Y1 L  [/ n6 {  |1 j8 ]
</SCRIPT>
, C/ O  w. v: |0 b# l</BODY>
9 t; O. b9 f+ B2 t) l# n/ s</HTML>
: S. b  g) \7 g
5 J6 e' w  A* Q0 e  x* {  哈哈!!:=)是不是很精彩!!

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