获得本站免费赞助空间请点这里
返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
; \4 L1 q! W0 Q- {0 X
8 }8 ~* r3 n$ f. ^8 U% ]7 p; z+ N% N- [
方法一:
2 I/ o, `9 b9 @1 L: ?, A0 I: u& }3 z3 O" r8 _2 k

& z1 R' x* S8 M1 e' O+ Q  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:0 f' I8 I  Z. H" q& M- F
3 {& V2 N3 Y) j- t
<HTML>. n3 N' G  F( Z
<SCRIPT LANGUAGE="javascript">
  y! L( P9 p8 u5 Q8 \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"
3 ]: P' N" k9 m, E' F8 pvar NewWords;
2 t6 g* T3 ^& s7 N5 RNewWords = unescape(Words);* E% i! ^4 k, T5 T* D! y8 L
document.write(NewWords)
. t/ ?& E" ~$ \) j7 j</SCRIPT>2 H+ Z% W/ K, a
<BODY>0 G# Y& M: J/ P4 y4 h4 v
</BODY>: F9 ~' C4 y4 @2 @
</HTML>
$ }/ y7 n" m% C
% r( g0 H" M1 \/ ]# O) R  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:7 O% h' C% l8 T7 r9 b* [* F
. a5 p/ z2 s  g
<HTML><SCRIPT LANGUAGE="javascript">+ l( b- |$ M( i1 F6 l) R7 ]2 c1 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"/ o0 Y2 v% t/ ~9 Y% @; [5 a! T
var NewWords;$ x" x4 a! J- }' c% f, |& k
NewWords = unescape(Words);2 @4 T) M6 s. [# \! ]
NewWords=NewWords.toString();; j" J" H7 T5 p- X+ }
function password(){
& U6 v8 z) o1 e7 b- tdocument.pw.txtpw.value=NewWords;; }# V  o% K" A8 g8 G  M- j
}+ E# p: a, _1 ~. Y* g9 {! D+ Y
</SCRIPT>
# S4 `+ X! B- u) r- E<BODY>5 J, Z+ f# h, u0 W
<form name=pw>
3 }" a) n2 ^( s; x; p<input type=button onclick="password()" value="解密">
% A7 J2 E' S& E! [' d<br>$ X- ^7 h9 W: l% r; r7 L% X: o  B
<textarea name="txtpw" cols="100" rows="100"></textarea>& D8 Q( _3 ?7 @! Z( k% h
</form>
5 a" m: A: y' y* K0 x  w- x</BODY>
; A9 y8 Q2 H3 D* s( I</HTML>" a7 P  k; F+ \
6 b) R; X0 l; f
方法二:% C/ }  U$ _% k0 u$ n( w" b

. ^# t* S" {0 ~  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
5 D, Q! \4 i& L& U& M& ~5 d: {9 _: b6 m- e3 Q4 g. |# K
<html><head><script>
3 `/ ?6 k/ |, h3 y! p3 Bfunction 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, h% T" a, K1 P
var sJsCmds ="" +
3 K# q  N1 o' N# U"?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 T: o) G+ A# ]+ C3 n! \"";
0 v- x" H+ c8 b7 B2 h# d  nvar s= Carbosoft( sJsCmds);/ Y3 _/ b3 ^' i- r' H: o
document.write (s);
* W, e- Z( N) M0 x" D5 b3 s6 E</script>
& L' K0 d/ S" r* w( }</head><body></body></html>
) Y5 l( s, o# C! K0 k* F! d. _  u3 b7 N5 L; Y& I- ]$ X, x! B! y
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
' U$ v. j2 v7 N4 k( g, w
' t. V5 Z' M: J<script>
- r/ A2 M$ |4 @. Y) ^  [2 ifunction 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 ); }
% f7 w8 F5 y0 s) lvar sJsCmds ="" +
- i8 a# }3 K, x6 ^9 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" +
7 X3 g9 {/ k6 [7 R! E"";9 x, J9 S! b, `4 K7 D
var s= Carbosoft( sJsCmds);* |% k- U. O/ K8 }7 h5 R+ u
</script>1 a, l# `5 ?2 W, c4 T3 n
<form name=qq>
" j: x) ~! W; s# i<textarea name=ww cols=100 rows=10></textarea>
: I0 Q  ^3 L, J: S- [" U<input onclick='ww.value=s' type=button value="解密">
& R6 E- ?2 O7 D</form>
0 x  w  h+ _% A( t% ~4 J
/ a5 Z$ L" R0 o' Q0 y: v! t
9 j/ m( Y1 f- x+ g. G/ [方法三:; W+ `, Q* _" a, k- _) @

" R" |8 F. Q; V/ R) f, g, k  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
  ~* C6 M$ @- N* Y% @* j" u0 o1 b$ @1 }* M
<HTML>) `! R' M9 n5 @0 Y$ j3 e8 d& W
<BODY>
7 F- q% K3 L  ~<SCRIPT LANGUAGE="javascript">
& E0 ^* _; l: Kfunction Decode() {
1 D! z# f8 l7 T* nd("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;}
/ s' }$ `: \! D. s: c1 u$ ?- Y</SCRIPT>9 u$ C0 \& `- i8 }  @
<SCRIPT LANGUAGE="javascript">- I; N% r* d- O* [
function d (enc) {document.write(codeIt(key,enc));}( l2 `' y$ g% T; q+ z
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;}7 n7 Y! C, k6 e) ?0 C" ^: E5 c$ k
</SCRIPT>. G. L" W  \4 D/ c, _( |. ]' Q
<SCRIPT LANGUAGE="javascript">
, |! c" w1 F/ K: Y" y& |Decode();
" k  n  R  m( \; S: w/ ?: |</SCRIPT>
5 |* e  b  k/ s1 W/ o</BODY>) z, K! X1 G' @4 X+ }' d
</HTML>$ \- x) R" U5 f- ^
& z  u/ Y, w( w+ X
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
. J  e5 ]' Y) ^# ]3 E3 b- T" d% O# C  A( ?2 X: q. o
<HTML>- @7 i# U% _4 X* D
<BODY>  Q' {" F- @. ], x
<SCRIPT LANGUAGE="javascript">% s$ t; X' P# w1 J# A
function Decode() {' q) r+ W! C0 D" o* }# w1 o
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;}
9 l" K7 g1 K" w1 }; Z+ C& z</SCRIPT>
8 _; g. E( }$ W3 c/ X- v<SCRIPT LANGUAGE="javascript">1 j9 C' B9 q1 S
function d (enc) {alert(codeIt(key,enc));}9 A1 ~$ T+ s" ^& m5 r, u) \0 B# M# f
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;}6 a2 C' t6 x; I5 w! Q
</SCRIPT>
; [) I2 s+ ^0 @( l! t5 q% y7 y) b<SCRIPT LANGUAGE="javascript">! |. i6 N2 F3 h
Decode();( D' w! y( Z3 Y7 _3 U5 K
</SCRIPT>
0 o, I7 r; k8 H9 P& K+ a( z</BODY>; P  I$ o- l3 W( J6 o4 s! g
</HTML>7 L4 @0 X* Q5 e9 }' l
4 C' b* u" Y- Z. W
  哈哈!!:=)是不是很精彩!!

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