返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
4 z8 T- Q. G' ^+ F; Y: J+ D* P6 z) W5 G8 G

, R' E4 w, z2 V7 t3 H方法一:2 x- J9 i* W) F, f! Y" F9 O: x

  F& J# ]% f1 H: U+ p) V& H. V9 W' }5 S1 C- d9 y
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:* \( h& u- M1 p+ w% E, F
6 i% {, y% ]1 U6 ~1 k3 O' ]
<HTML>
6 Q# g1 i1 d- N  _5 i4 [<SCRIPT LANGUAGE="javascript">; O! P; N0 P7 ~% p4 G7 k
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"
8 w8 K3 E) `& z  f/ M6 b% R, C$ vvar NewWords;, z' c. C& ]& Y; J0 G8 ~0 x8 z% y. V
NewWords = unescape(Words);2 Q! ~, v: R6 j
document.write(NewWords)
. v9 z; h1 d( t& y+ m</SCRIPT>
0 f+ W9 o9 ]. p+ V<BODY>! `! o4 b8 D: \7 a( M% [$ I* J
</BODY>3 L8 `* o) E+ t
</HTML>" _3 {/ k9 r; v' k( W
6 h% U8 N) K6 M; S' _; U2 j$ Z* c
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
/ a; U( H2 p4 f1 Y6 X5 b
& ^( n1 W+ j) `& c) d7 _<HTML><SCRIPT LANGUAGE="javascript">/ h! ?. z2 o2 T# I( w" F) Q
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"
( q& \5 {5 L! h0 X$ P7 gvar NewWords;
3 A: }8 Q! O2 T$ K' ]NewWords = unescape(Words);
  p- H: t$ t9 f( N; UNewWords=NewWords.toString();
* _$ Q4 e  ^- I' O8 Cfunction password(){
) \) \; g0 |9 ]- Ldocument.pw.txtpw.value=NewWords;) k% S/ _+ d# n; i% g2 I) p
}2 E6 Y+ b: i2 U6 R* R" F/ {) U) @* H
</SCRIPT>6 y8 `  k4 P: q) ]8 k
<BODY>
" h: a5 m( W+ [! m+ t0 G4 n3 A& }+ l<form name=pw>
2 ?2 G/ i- l2 f$ M- t<input type=button onclick="password()" value="解密">2 n8 m* `; _" ]/ K$ ?" g
<br>2 ~) S5 N. r. f( ^  f0 N" U
<textarea name="txtpw" cols="100" rows="100"></textarea>1 E! J7 P/ s2 X4 n3 l8 G
</form>
) _* T5 }; F) ^/ j, p) P! S</BODY>
3 k9 n3 J+ z# Z: P" W</HTML>
5 a% _% }$ }2 X! I* P( r! ?$ ?) L; L1 P3 p
方法二:1 \6 C+ I" g" s

# d/ l4 Z2 S& B) N6 {5 M  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:6 K! E6 S( f2 ~
" k9 _2 d7 m4 e2 J4 c
<html><head><script>( ~- @8 T' _4 B0 N8 E. j7 ?
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 ); }
; l3 X* Z4 y" g) Hvar sJsCmds ="" +8 C+ m" X0 I9 I: y& a6 o1 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" +
8 @& @% M% s/ G) y"";+ p% @9 `% F8 {
var s= Carbosoft( sJsCmds);
0 N9 ?9 q" S# `9 s6 \' Z/ o, adocument.write (s);
9 e; I! f' l  Y# t" n</script>- x4 y  Z' ^5 |; f# b
</head><body></body></html>
) g1 D; |) s2 b, r0 u7 i4 l) b' `6 t$ u2 @3 r& d
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:* y! Y9 g; b" P0 o% A4 d$ F

# p- {. U7 X. n2 ?/ f<script>- b( D. q& G# A* [
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 ); }
; V- Z( H* L! |/ A6 Y8 u* B4 B  kvar sJsCmds ="" +' Y& ]( i$ w* }; t% I/ F
"?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" +( j! x( b9 v5 |- q
"";# G1 z/ L, P6 s$ p
var s= Carbosoft( sJsCmds);
# l0 B9 @1 x; l; j& Q* P: Z% @. Q</script>
4 H  y3 b. E+ n* L; |<form name=qq>1 k0 U" U3 C! [  \& Q# i
<textarea name=ww cols=100 rows=10></textarea>
( z, ~4 [3 S7 ]. ^: V3 {/ W<input onclick='ww.value=s' type=button value="解密">
" r0 F3 U1 S$ u8 s+ g0 t</form>
5 d- O/ j% B9 g& y$ D0 V  ^4 p. y) Z6 z4 s+ R: p. e
4 ]8 j& R) ^" w1 l$ s" T1 t0 V
方法三:
6 m6 G- T  z4 L0 l
4 g) T0 z, B, F" h0 U6 Q  o  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
. Z4 r) n+ e+ `. W/ X' S% F
. I2 R* H7 Q9 U% w" E<HTML>1 V! J. b; j' d0 U- g/ P
<BODY>
0 t1 z' ]; H# a; F& n# j<SCRIPT LANGUAGE="javascript">
- j/ F/ [3 Y' Q' a3 _function Decode() {% o# P; y# q8 T' 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;}
  g. J0 t3 k: _6 [+ k- {</SCRIPT>
$ ]0 R1 s: j9 \- X<SCRIPT LANGUAGE="javascript">- w$ O+ n) o, N  m
function d (enc) {document.write(codeIt(key,enc));}
; c7 Y6 Q( L$ \' y! |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;}
- x) s* U: J; F# N: W/ E</SCRIPT>, v! p; j8 i, d: `) K* q# g& T
<SCRIPT LANGUAGE="javascript">" [& ?! G4 ?! f* E
Decode();  ]* S8 I% y! i! C7 j4 ^
</SCRIPT>
0 Z! _- R, f8 l* W+ d# c+ T</BODY>
2 a6 ~' o# ]6 [/ ^7 L- c  y5 s3 j</HTML>' j4 h6 H( q  W

& w# q' I7 |8 u/ M* Q) g4 L" [9 u  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
2 ?" ?4 }2 {/ x- [, s6 z) L# x0 z
<HTML>; L% q4 [2 p: `1 U6 K
<BODY>, s3 ]4 b( A1 J
<SCRIPT LANGUAGE="javascript">7 c- L' M  t1 q+ p6 w
function Decode() {
* B- y. g5 v2 ^8 Z. I) Zd("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 Z* ~, Z5 R2 ?1 J  o2 r</SCRIPT>
, r; f; p; s+ H3 K7 r; ~; ]% }<SCRIPT LANGUAGE="javascript">
( p% [& \/ H( {function d (enc) {alert(codeIt(key,enc));}. q% ~7 `9 |" 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;}
9 o' V6 m, K" W8 h/ }- w</SCRIPT>0 R1 R/ ~' B7 C  T% b1 Q
<SCRIPT LANGUAGE="javascript">
) d4 `5 b3 J, `2 N) j2 L; iDecode();
# H, p# c0 L+ ^4 J/ T</SCRIPT>
; x8 y! V$ M2 N* s8 ~9 i</BODY>& f4 G0 N* i' _+ v; \$ X2 m
</HTML>
& {8 M* \  ^# V. \& b! V% X% L+ A8 l$ D9 k9 l/ E
  哈哈!!:=)是不是很精彩!!

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