返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
2 i: t4 T7 E- y, F: Q& z' ]  l# @% S! q  O) F3 p9 M0 J. O  e

6 ^  ~6 ^  F/ g# \4 C# q, w方法一:0 g( j9 I- X9 A
* ^2 \( j) b% E- n' s3 `3 C4 L# Y

0 R9 {4 X) [; |' d  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:9 R& m; \3 A  y; E; b
/ i6 l4 k0 d9 L, A6 k
<HTML>
- P' j( F5 S5 l# Q: u3 m5 X8 @; p<SCRIPT LANGUAGE="javascript">: d/ s; ?4 V  e7 }/ w2 e) A# T
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") \% V! F* Z; i" X  |
var NewWords;
# ?. w  K( U$ h# J& q5 |8 QNewWords = unescape(Words);
0 a0 C: P: a. K+ l. Bdocument.write(NewWords)- p- ]" x! r# d0 H  `
</SCRIPT>5 z6 d, j4 `$ x
<BODY>- `: y2 ^9 `4 c
</BODY>6 s7 V+ b, z& l0 b2 b. R
</HTML>
5 k; Q5 @' k: o+ d, a5 L& c# G& E. V
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:* H4 g& v$ R/ J6 R' m5 V
  H7 C4 D+ F! x2 z
<HTML><SCRIPT LANGUAGE="javascript">4 b) P% T: D& K& I* Z
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"
0 u$ W: B( E' b# avar NewWords;9 O; X" N6 H: W+ q* Z1 d
NewWords = unescape(Words);8 C& P' d. l' u  L% C8 o3 r- s
NewWords=NewWords.toString();
- w/ \  {; b5 P, S5 @+ ]) Yfunction password(){  C. x* ^# N% G% c7 j% M3 G2 D; D
document.pw.txtpw.value=NewWords;
+ [# B2 d! |3 m- R}
4 m9 ?, d6 h# \( [% H</SCRIPT>
) @9 T! [& K8 S( K2 C& N<BODY>  M+ M1 a! Z) w5 \
<form name=pw>
4 v, @# c, _# j4 C1 n( f4 L% |<input type=button onclick="password()" value="解密">6 f" |/ _5 [4 q1 X' }5 q
<br>
( w2 v. L) }( g0 e1 H<textarea name="txtpw" cols="100" rows="100"></textarea>
% B+ z( T7 W+ q* F</form>
+ {  F8 ^5 B! }, `</BODY># F  k; c3 ^. F
</HTML>
: R6 R8 P; ~: ^! q7 s% w# e
7 _; w+ s: {: C+ g8 b% d# K8 Z+ w- R方法二:
0 [0 s: ]" ]& m  t! ]* Y% K2 g6 I0 k! F) f+ j4 e' v+ I
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
, S! h5 D4 c  ]# H& M% v
. d4 E$ Z* U7 y- I# N) \<html><head><script>/ ~$ `- }) b- `: h8 x$ Y$ 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 ); }, Z+ L1 i$ h0 E' X
var sJsCmds ="" +
6 q+ F6 x: a+ Q"?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 d" p6 `  ^1 V+ h" y( w) A- t"";
6 N2 _1 G/ E2 b0 q1 f+ lvar s= Carbosoft( sJsCmds);0 N8 F, A: _/ {
document.write (s);5 g* p6 u- H+ f* |
</script>5 s& Z: R5 J! R
</head><body></body></html>/ P/ L& }: s: g
0 K, b5 L9 S* m
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
$ g8 F( ^; }- o) T3 z% \. H- {( `# P% D4 J) Y; o0 ~
<script>
- y- w' q  T' }) Lfunction 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 ); }
; h( Y* o* T$ Z8 J6 l* }var sJsCmds ="" +( o5 l7 ]3 C/ O" |# 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" +' O4 |' H- A6 }4 E  c
"";
) [, ^3 B7 Q7 o  A; cvar s= Carbosoft( sJsCmds);
5 v9 X5 s( D7 Y' ?4 J" }4 B</script>
; m7 l8 y! _% E<form name=qq>3 d9 q0 t4 I- Z9 c/ _) ^
<textarea name=ww cols=100 rows=10></textarea>4 c+ b$ p- I% x5 L! W) @3 ?
<input onclick='ww.value=s' type=button value="解密">! g+ {  u. r% t8 }/ f6 J9 C7 O
</form>
; g9 W; [  M7 N7 I
& m' u$ u: \0 A/ h$ t/ F# I
/ m. b$ n4 ?% N! w方法三:
" H9 ?- S* E: q" d) e4 H5 v6 q, o* |- E& \4 ~4 j' k9 I, s* R' H
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:/ C0 f5 C9 s1 @0 k# W$ b
$ a& @' O- [# w
<HTML>
5 F3 E0 B& K. x) s% E  v- ]<BODY>9 o+ z9 G9 o( A+ {3 {
<SCRIPT LANGUAGE="javascript">. E1 Y" q' [  C
function Decode() {
1 A& K: ?* d  z6 G% c0 ud("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;}2 D8 I8 @' Z4 s% p" W7 A: z" U. t
</SCRIPT>) p) ^% v( V5 V4 P* J) U" ^, Y+ L& g
<SCRIPT LANGUAGE="javascript">
+ m& _* n8 D/ H$ k5 ?% x  C( ?9 Afunction d (enc) {document.write(codeIt(key,enc));}
  B% k5 J9 t0 ]9 s* 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;}4 O7 x9 D; I/ v+ \/ V5 I5 d
</SCRIPT>
0 f# o4 h' `: [0 z+ c/ o) w<SCRIPT LANGUAGE="javascript">% l# d" K. z- e2 ~5 u
Decode();* p- ?6 }. F7 q. T) Q1 t8 k. [& B
</SCRIPT>3 j) a# m& U! B0 J) F7 Q
</BODY>
2 D* C0 p& b9 i9 v& W. `</HTML>1 y8 F4 @6 L' [) O. Y- _9 y. m9 B! a

- _% Y! I2 F. }1 L1 e7 o  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:  D  ~1 q0 [+ }0 l4 y* p
/ ]% _/ _6 n3 j4 D2 q
<HTML>! G/ x% l2 m0 B" U" V
<BODY>, E0 D; U* X! b) f
<SCRIPT LANGUAGE="javascript">
* E/ h# [+ p: K* p9 {3 }. r2 h7 \function Decode() {/ T! L2 F2 M5 F. x
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;}% M" _1 g6 ^; W( r+ m
</SCRIPT>
+ y, r( g: C3 L& p* m<SCRIPT LANGUAGE="javascript">
2 h2 T; c  J5 r! f% l& ~function d (enc) {alert(codeIt(key,enc));}
; i- Z- Q% G5 O  K8 q! [! [" ivar 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;}% L' H/ P) n+ I3 \! y% ^; x
</SCRIPT>0 l+ ^$ k, a3 P2 L: J* a
<SCRIPT LANGUAGE="javascript">
) B3 Q) c' r% m+ sDecode();
$ {3 o5 k* l$ B$ S1 [% l</SCRIPT>
% R3 |) y* Y& y. X" |/ N/ a! P</BODY>
! @! w5 k; ?0 q5 \* z</HTML>$ q4 O% h9 d! e$ y3 F2 I+ X
4 `0 @- [  X  O0 [0 I( u& a
  哈哈!!:=)是不是很精彩!!

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