返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!5 H+ S/ _0 n; d. J6 B

" W' A0 d2 \3 [7 I) Y6 I# k% x9 t; U1 Y) Z9 `
方法一:  K2 h1 }+ Z4 C4 V4 U3 `
- I" J! F# Y5 V9 I& O4 [  L1 T" @

' ^  i+ A/ o$ w% g0 c; M' W  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:0 \6 x9 f+ e8 g( S* S7 m
' ?( Y+ z/ E( ~' t  S* F( L
<HTML>
% ]( y+ r9 Q/ {6 G0 Q9 d, H) t: {<SCRIPT LANGUAGE="javascript">
: a+ Q/ U- d9 Z$ wvar 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"; i8 e! z: T1 Y' f+ y3 T9 p- Z9 E
var NewWords;5 E% q0 n" S+ E0 g- e; c% j3 H
NewWords = unescape(Words);# x: @" D% R* k8 \" ]9 N
document.write(NewWords)
3 z# D. @( k$ X! e0 L! A9 N# N* l</SCRIPT>: M6 ?0 q+ k' k+ F, f/ X3 R, o
<BODY>8 s4 O6 o+ @1 O. F& z
</BODY>
; k  l  w9 [; Q</HTML>. K& p+ l, g+ Z" v1 H$ o

5 b4 p. y4 L. Y: p5 w  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
8 w8 Z  S! x/ r1 [6 J  w  M" x9 O/ w; G* n
<HTML><SCRIPT LANGUAGE="javascript">+ S( e: X- ^9 {! L; G
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"
9 \9 K  x; i  M" Pvar NewWords;
( C# j8 F& k  \- ^4 `NewWords = unescape(Words);
# p1 M8 ]. ~; ONewWords=NewWords.toString();) v4 j/ p7 c  \/ ^8 |! ?
function password(){. w$ U5 ]. K( u1 m
document.pw.txtpw.value=NewWords;0 i6 Y2 N, d( j* W# w$ @
}* U8 }& `, _& ]& M0 K% W" p
</SCRIPT>1 L" G) U/ I8 t  N' j: r/ x" n
<BODY>8 h0 S" e6 r8 S
<form name=pw>! I% I" b! Y% z
<input type=button onclick="password()" value="解密">
; x9 s' d$ h/ }5 l# A<br>8 z: ^4 S' ?4 A; L& u' ?1 p- P
<textarea name="txtpw" cols="100" rows="100"></textarea>
7 T9 j' b. F- H1 y8 l</form>, i" |) O  I/ R1 {% [9 J8 P, e! m
</BODY>0 ?, H: m5 D" H/ }/ }* v8 I
</HTML>
6 @& v8 u6 p% c# D* D8 ?% z( \5 s0 L3 |' `) N$ o0 a
方法二:0 |8 h4 ^+ b+ q
1 C* M$ C/ R6 b# c0 b( b, S
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
% h* {0 v/ c; c( ?3 L4 H+ M# v  l& n( `, N# n" k8 X5 y
<html><head><script>& ?! _* p4 N+ p4 N7 T
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 ); }% d8 N. C3 G  q/ e6 ]) G8 Z
var sJsCmds ="" +& j+ T; ^/ @; l1 H/ M! c! K
"?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 C( v' L, S8 v7 }
"";/ I8 k3 Q) t. g9 x" O8 m
var s= Carbosoft( sJsCmds);
1 v6 ^# L! R% w% I" n+ I# O2 ddocument.write (s);
. n4 Z: k  J- r3 v4 t1 c</script>, U1 m0 j/ `) e9 W9 M8 _$ e4 G" }
</head><body></body></html>
8 a: p1 d6 _# E/ Q) R
: X: y, |) ]- }: T: b6 W  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
* L/ y. Z0 i+ o  L; m7 B/ h
+ k' r8 T3 R# H  y6 e<script>
( k. ~  f9 A" Y& sfunction 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 ); }
# N2 H& e# l9 K3 L* V" Q1 Avar sJsCmds ="" +
  ]/ O5 w; c6 c8 B6 O% |5 I0 g( @"?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" +
, U1 b- Z, M- @- V% {9 C5 X6 E4 ^"";: ?  V" K0 L6 ?
var s= Carbosoft( sJsCmds);
, P5 m2 z' ?+ \" X# H</script>
/ j3 V7 J; c" I  b- y1 \% g<form name=qq>$ t6 r; ^6 \5 a' `. u$ B5 }5 h
<textarea name=ww cols=100 rows=10></textarea>  u, g+ k$ T, R+ U8 {) ]
<input onclick='ww.value=s' type=button value="解密">3 h1 D6 w1 R1 x" i2 o& G# ]* W
</form>) k6 M1 C8 N. z! t( h9 q
/ q  m0 A6 ^0 O
( y+ z1 q1 r% [6 X7 `$ _. B
方法三:/ Q: \! G* i( _6 W  t. D
& a# c- H) W; u
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
5 R4 f$ M3 {3 ^" X" X4 `, m) e$ C5 L9 E0 @
<HTML>; V% W2 N* h' V  ~$ m
<BODY>0 a. Q+ I/ ~( w  @
<SCRIPT LANGUAGE="javascript">
; @7 [$ n+ ]  }/ z# a! pfunction Decode() {$ x' {5 L: C! l+ E" m9 d( X  f
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;}
# q- |  W# v* T# H</SCRIPT>% h5 K" g5 O0 _1 L9 A
<SCRIPT LANGUAGE="javascript">
, X7 f7 L6 y* n1 y3 zfunction d (enc) {document.write(codeIt(key,enc));}8 O7 N+ O6 G  \8 d+ ~  |- E
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;}
1 V! k. h! B8 T' \! \4 H</SCRIPT>
9 v& i. v% L7 ?' R/ A<SCRIPT LANGUAGE="javascript">- Z% _9 {0 F3 f2 z- u/ j
Decode();
, y* S, B$ S5 [9 w</SCRIPT>- k* y& v+ B. S( Q& e
</BODY>
$ m" e5 F& O/ h9 h</HTML>  i* h8 O, X$ V8 |0 W& ~+ V' q9 H* T
  A6 {5 r( {5 r: K. }
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
# [+ D' r% ]$ c' z# H8 v5 l$ f: e) {/ _1 I! w( K% _  U
<HTML>
* U# |3 ~: L3 P8 ^( E<BODY>
  ~9 ?1 V, q# ?( Z5 P; V2 z) |# g<SCRIPT LANGUAGE="javascript">0 @7 g6 T4 d2 q+ K  y
function Decode() {
: o' K* z+ i! W5 B$ kd("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;}5 P* f# Z# \" D  n' b( _
</SCRIPT>0 C9 G3 P6 L" i* j$ ]4 w0 s$ q
<SCRIPT LANGUAGE="javascript">
  y) {1 c6 C' U: {' j1 Nfunction d (enc) {alert(codeIt(key,enc));}
+ J, |6 S; K; ?7 b) j7 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;}
9 M2 H) E; v2 ^/ S0 f</SCRIPT>
' u8 f5 E& B) O9 y1 m<SCRIPT LANGUAGE="javascript">
- f' V, F) C7 {- G/ \0 `* n4 N4 hDecode();
$ b( U0 t; X# y. e</SCRIPT>
; O+ u" Y  p8 d</BODY>
* h8 j5 f. k4 y</HTML>, ?) {* x' u! u1 g8 h" D, n- \
& s2 C3 R" f0 v" [4 r
  哈哈!!:=)是不是很精彩!!

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