返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
9 f4 A6 @: x( p* v1 @; Q2 f6 `$ x: I; [" w& d

: i- X, X8 S! e" O, d方法一:
9 G$ _% {# @; x% {7 `% W7 L' A4 S" D' S3 W. p3 e) s) l
4 b' s0 ?) H$ N% h0 E0 E
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:# h9 N* m5 ?$ c$ t' _& L. }

: g; F0 s/ p1 d, G$ z% w: |<HTML>
. R7 ?* N! J+ q) v+ V<SCRIPT LANGUAGE="javascript">: X+ r" M- \: p5 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"# h, y) v" l: B# a& j
var NewWords;# a5 y3 W, v. \8 G$ P% G' ?) ~, W
NewWords = unescape(Words);* @- \& S0 l+ ^3 s. b* ^
document.write(NewWords)
2 F+ ]! n4 k' v: f</SCRIPT>
- x' ?! \8 K" d9 ?' P. K9 l% B* L<BODY>
. x4 t5 Y! h* M- A5 ~</BODY>
4 `9 @9 ^# H: ?2 @</HTML>7 E1 h5 l4 @1 E; i9 y; c
, C! \& W, c) T7 \9 f; D
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
! Y0 G" i, A% W9 y& }2 W; k7 x) U  r) S& ]3 H3 n
<HTML><SCRIPT LANGUAGE="javascript">
9 {3 y5 ~+ E5 W/ n- `$ d7 Lvar 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 w! }# e  W2 _4 q$ pvar NewWords;6 Q. P* m, H+ d/ S; X
NewWords = unescape(Words);2 O' Y2 y1 t# [8 k
NewWords=NewWords.toString();" `% _2 g( f1 K; `7 C7 z
function password(){5 U- `" o# p5 g( r1 @0 L: s) `. |
document.pw.txtpw.value=NewWords;
, j: d! Z5 B2 `! _}
1 g: ^7 w$ t( B9 b! C, `5 k# _- B</SCRIPT>
3 H1 m" a  w* ^  b2 ?<BODY>$ c$ F7 l7 ]! j9 @& m. X" A! c* |
<form name=pw>
$ Y- t7 I- i( z$ t" c<input type=button onclick="password()" value="解密"># `# ?3 c; ?" U
<br>
  }$ t+ C  H  K<textarea name="txtpw" cols="100" rows="100"></textarea>) H) ]; h9 ?- o) k6 J
</form>, L7 a+ {  t+ n0 u2 o1 @
</BODY>
% z- ~7 o2 M: E1 o</HTML>
( F1 F% K9 V# Y
* }2 `/ ?5 ^, m% N4 w方法二:+ D  k# w6 G. q/ s; Y3 k; \

( D" Q' {9 H8 o, r. f' n  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
* S' l9 J. I  r# {. T0 D( a
7 c* B+ [7 c, k4 B1 Y0 P. P<html><head><script>/ X& z4 U) y( g" y
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 ); }8 H5 @, |+ T7 T' y! h( G
var sJsCmds ="" +
- Y9 X  J- p9 D3 o6 U( d0 d5 T"?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" +
. U' F+ I. Y# P6 I"";
# j" @2 B+ ~' w9 D" evar s= Carbosoft( sJsCmds);) R" I4 g" _0 u; ~- N
document.write (s);
( k! l: W0 E+ E, B: t</script># h( u3 F3 Z% I9 \
</head><body></body></html>9 [) W. {0 }& v+ N2 Y1 P
  K' S* E1 B. k) Y# h2 \
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
+ Y  v5 T" j/ @- A1 Q
1 r) z2 N: o% L; w+ Z' |+ w<script>, @: W: ]8 y* U- Y  w# u
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 ); }1 U1 U- |/ a$ d1 T0 b
var sJsCmds ="" +  a; X8 |' k# k% [' |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 L/ ?0 S9 n2 y' z- m4 D' C& b"";
/ ], z. e) [5 X3 V* Bvar s= Carbosoft( sJsCmds);8 e/ a. L. g" u2 R- I* [
</script>5 C9 ]3 N  z0 Z7 K8 I0 v4 i
<form name=qq>- }  D4 r3 T+ z! j
<textarea name=ww cols=100 rows=10></textarea>' }# f* P: b7 V2 v% B8 A
<input onclick='ww.value=s' type=button value="解密">
& y3 m: ?. L. s$ Y( Q* @</form>
& O% E* p8 a5 S
& ?2 q# [7 [( s6 g
9 u: u, }& `8 R0 u5 }: Z7 G: _5 Z方法三:5 l9 U3 a  T3 l8 S; F" e/ U' o

3 K7 b! i+ s3 m  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:' \; e6 n. n: @# x
7 d) w. S8 e& P/ c* \0 v* L; i$ c
<HTML>& M" h$ a' A; K/ @5 x
<BODY>: _  ?  N6 n) {  i* d3 V  N
<SCRIPT LANGUAGE="javascript">& l, U$ j; T- w* n# z7 n( A2 ]& U
function Decode() {. T- T3 ^4 L5 f( j
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;}! g9 R6 a- L. K" s& V/ N/ }
</SCRIPT>6 a2 t7 d8 ~% ~0 ^  l
<SCRIPT LANGUAGE="javascript">
5 h: c3 m1 ?- G1 K) ]9 K; h- Afunction d (enc) {document.write(codeIt(key,enc));}: P' q) {5 F4 c
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;}
: }" ?' |, v& a* v  E</SCRIPT>
9 l; \$ l3 H7 a9 R5 D! J( w+ `<SCRIPT LANGUAGE="javascript">6 W6 p' b9 J4 B+ P# \5 x$ P
Decode();
6 t. ^1 v& k# i1 |9 t</SCRIPT>% {1 R) A! k* r
</BODY>3 V( @' C! Y$ K0 O
</HTML>
' t, t. Y0 E, X
! z% X5 C5 q5 ^0 M# D! Z1 X# H) d4 i5 K2 p  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:2 l* b5 j% b  Y5 ~& a

3 V8 Z1 j3 d9 I8 J5 P6 |6 S<HTML>. M9 O/ n! S5 r. p6 j6 P' f. x* ]
<BODY>
4 d: _4 r/ u) `' J<SCRIPT LANGUAGE="javascript">* {4 p" m- w# t" @) }- M6 J
function Decode() {" V. H) l4 F7 Z  E! G
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 {( E6 r$ y% _0 }. D! c% b0 g: J
</SCRIPT>
; q4 {: F8 ]  d, N<SCRIPT LANGUAGE="javascript">
' [  A8 \& M- Q9 M" Tfunction d (enc) {alert(codeIt(key,enc));}7 N" _+ J! U5 q- c$ e0 M  A5 n+ @
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;}0 q; M. v9 K$ s! \" P# m
</SCRIPT>: b! h* n/ g' Q) C  Z# ]5 h6 g1 T
<SCRIPT LANGUAGE="javascript">3 S* ?" |! B% ~1 {, r- a$ _
Decode();+ n, a& V. v- L" r4 ]  P! F
</SCRIPT>
# T9 p0 o* }& r* V4 r# i% v</BODY>& d+ |" e# Y! N4 I0 b
</HTML>. j8 s! w  |% K2 V6 t$ U, X! V: Z

9 }4 [7 u2 x# @$ h$ h2 j  T  哈哈!!:=)是不是很精彩!!

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