返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!& |0 V5 R) u! a7 ~* ~1 l% ]5 a% y2 R& h
$ S* d! n' ^8 Z$ @4 w$ R

6 f' @3 I4 \- C( B方法一:
; o$ _5 D6 D+ K8 E5 l# y, `3 T7 p% S2 x) s9 b7 e2 Z; C3 f

0 O9 H& H% v  R- ~  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
/ g! O( t- c. @6 V; ^) N# u6 f6 a: V' f% p% A. \' F* j( n0 H% \
<HTML>
' g* R8 V9 x, S& M, k4 P  h<SCRIPT LANGUAGE="javascript">
1 V, _: M, U, T: i- ~! \, V0 j! 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"& U+ e7 W7 F' b4 l! f
var NewWords;
+ ?4 B  h; I% fNewWords = unescape(Words);
! u! x* Q2 o4 U- d8 n6 ?document.write(NewWords)
% g9 R. q( S& ]- N</SCRIPT>
9 M9 |0 g9 Q6 w& b' k<BODY>" E- G1 F1 T5 e9 t) ^& U/ m
</BODY>
, L0 `+ L5 T- l6 Q  ?8 r</HTML>4 c2 x) n0 E9 I5 O
1 ~1 m. n! W6 ^
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:* q3 f. Y  q& F4 ~9 g4 u

% r! m' b0 a# J& |3 u# S5 b% f<HTML><SCRIPT LANGUAGE="javascript">
5 `  O. N" ^( Z/ a% K, B/ x9 fvar 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"$ }7 X/ |2 O2 k$ U
var NewWords;& T6 i& m$ M' @0 n# r6 Y- z
NewWords = unescape(Words);
! y5 t4 f& Z& @( ~; @NewWords=NewWords.toString();* s5 M, C" O8 z/ ~/ U; ?
function password(){$ ^9 C8 \+ {: `; A( D; e
document.pw.txtpw.value=NewWords;
/ z& p* ?& M" m}
% u) o. ~% A8 S5 n7 J& A4 b1 @6 |</SCRIPT>
* [+ V# f. J( j( @* z7 J<BODY>
8 |# n( o6 @+ t& B9 L; t<form name=pw>: E* _& v8 k- {. X
<input type=button onclick="password()" value="解密">
* {8 D" d- R$ b, p<br>
1 {1 h6 D/ Q5 [4 a( o<textarea name="txtpw" cols="100" rows="100"></textarea>9 O1 h4 e4 B5 U# e( k/ e
</form>
2 o% p' u  |( g8 U* N</BODY>* f. G+ G- f. C: L) T" [! d
</HTML>
" m% n/ w$ j2 Q2 m
6 L" N& v. p* e; i6 z- }) y, C方法二:7 |2 }7 R/ s! {
. ]- e  P2 H8 G$ k8 n: i
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
. e4 M% f/ J6 g8 V, t% D0 B
" O5 ?; _  u. Y6 y<html><head><script>4 d: w& x: l9 d; Y3 {( {' _& 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 ); }
) O' g- {4 h' k  }6 F1 w) Uvar sJsCmds ="" +
& x7 m/ z7 {$ x! t3 ?"?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" +
) X( ]$ U( E% t# X' J"";
5 u8 m. p2 ?0 @' A: t1 v6 Lvar s= Carbosoft( sJsCmds);) d) Z  J7 [# u; `0 i
document.write (s);
0 y' d/ |2 i4 L2 L</script>
8 z2 i( L3 P: t1 E/ E1 q5 {</head><body></body></html>7 d- N' n) U+ n
7 m6 q0 h' k3 v2 ^1 y9 A9 n
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
! ^  A) u( _% O! K) a
. @$ t% t* L2 C: Z/ x  Q<script>1 p) l0 W/ G3 v/ t. v7 d, x3 k
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 r! J# N6 p, H) w2 w8 n* k2 P8 K
var sJsCmds ="" +! a/ P) m' h; L: i$ G  g1 @
"?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" +' f5 G8 W$ }6 J8 j& y
"";
5 b# |5 w9 {. ?* v: D+ p9 xvar s= Carbosoft( sJsCmds);
/ V  a; j) A1 t* D% c( v3 N8 j</script>
5 d6 c9 z; h. v4 \5 P. [<form name=qq>
% b7 O; ?; n/ X" I- y. U# `# v<textarea name=ww cols=100 rows=10></textarea>
$ h: j; `8 F3 U; V9 W<input onclick='ww.value=s' type=button value="解密">4 f! x+ G/ e, _  w! y$ P# O
</form>+ J. i9 j3 p7 B; J

2 g; `  a' P$ M6 ?
) c  m9 Q0 O# t6 Q" T2 i方法三:+ F0 s* G: f* ~& n
. ^3 v/ _. I  g( a
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:8 G3 i8 i1 ?' V, a) ?; n

* g0 j" P( q% `+ K8 X7 K2 `  j<HTML>6 U7 Z; X, T$ O% M
<BODY>" d  _; t% E! ~7 v  G
<SCRIPT LANGUAGE="javascript">
& e, E- G& i% z  \5 `function Decode() {
9 h; ~( ?* J4 u. L$ Rd("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;}) h% j/ M5 L7 q, A, o9 D9 B
</SCRIPT>; L$ u3 _( a; {
<SCRIPT LANGUAGE="javascript">
5 s; g" l# V" v; u7 C/ P/ Jfunction d (enc) {document.write(codeIt(key,enc));}
9 Z0 V7 o" W4 ?* O: M5 Svar 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 T4 l( m6 Q' r  U
</SCRIPT>, b6 E  d" C3 x! |
<SCRIPT LANGUAGE="javascript">9 E# [0 z7 t  {3 x3 {# B% u
Decode();; g2 _1 _4 p5 o! j. X0 H
</SCRIPT>
2 v7 h1 o! Z2 E- G</BODY>: X1 e1 A3 b7 n9 S  R
</HTML>. r3 A0 v1 U' U1 C6 [

$ R7 [. D- ]* C" j4 K, i* }! k" D6 \  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
. ]9 V, U/ Q9 B: O
! m/ K; A. k6 r, H" o3 ?# H<HTML>
- |$ L# H% D( h<BODY>& b3 D/ B& W3 h% z( O  Y; B- |3 B% e
<SCRIPT LANGUAGE="javascript">
- T4 S2 F0 L/ B4 qfunction Decode() {, p7 D  K( s: Q1 B- S& Z' C. R
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;}6 w* t) Z1 V: g8 e7 N5 S# `0 W
</SCRIPT>
- e: l- n0 c8 A8 R. A; K( ~- x<SCRIPT LANGUAGE="javascript">: r. P- P  T$ I. l$ B+ Y. [& c: i  p
function d (enc) {alert(codeIt(key,enc));}, ~: t0 N* I8 s/ A
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;}% Z; X" Q4 _0 p5 z$ G
</SCRIPT>
- W) @$ i4 o- A) A+ a$ b<SCRIPT LANGUAGE="javascript">
: j8 E' W- b) u/ ?8 ?0 `+ ^Decode();, h; n+ e6 x+ a2 s# Y) v" J8 P5 u  h6 r
</SCRIPT>( w5 x* q, b6 l* Q/ F2 K( M0 A4 L( E
</BODY>* h# j( S6 T! W  J% d+ `
</HTML>
2 v- Y* v5 k1 h) _* d! C- Q5 x& [& x* `- M4 T
  哈哈!!:=)是不是很精彩!!

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