返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!) A, o  r1 H, O  x/ R

( B' r; l' q$ `; C% [' @2 Z1 y
5 ]7 H% u" h" V8 p* D# W: P; X方法一:
  L" N5 |7 s6 B6 g
. {4 h# |6 {, z. f; ?( i/ [' h2 s! E7 h% T2 ^% u6 ?
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
" \: w# u9 F1 a
- J5 c) d8 E2 Z5 G* p! \<HTML>
# h" O2 H: S7 ^6 E<SCRIPT LANGUAGE="javascript">5 k7 H+ T% o# C! u8 ]# a9 ?9 c
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"% _4 W! X* v# v
var NewWords;+ d  X' @% f3 ^2 l: Y& F9 v
NewWords = unescape(Words);" j+ C& j  H: {/ d) F- k6 P
document.write(NewWords)
' E2 D% ^/ I5 m- A9 k0 o</SCRIPT>2 g, D9 k% j( k* x  u  a
<BODY>7 Q+ s# [3 F) ]0 s' |  R9 X. _9 \
</BODY>1 ?' d& Q4 t/ b$ ~
</HTML>% S" E# F$ G) r
) u7 F, ?& T4 p% @( _
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:( \/ K' x4 J8 {1 q2 v. M$ g

9 j, |3 o: E4 D+ C9 S<HTML><SCRIPT LANGUAGE="javascript">0 K* ?) Z  M% z* K9 w9 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"
& x' [2 s, J8 v( Evar NewWords;3 A) m# N3 ~6 |% J; _
NewWords = unescape(Words);& I* r7 z, x( @% b9 B
NewWords=NewWords.toString();! X$ P8 u# V  J! H/ C
function password(){
8 o' Q: P# R' L! M: X7 ]6 \document.pw.txtpw.value=NewWords;
, ~6 |9 W, f+ G8 A' ~* |1 ^}
! K) ]6 ?8 n+ w4 w: [- O6 T</SCRIPT>
) U4 p; J- {6 ~8 U0 m$ ?0 b! n* e<BODY>4 @% R, x" f7 }' D! m% N8 R: d+ f; k
<form name=pw>0 W1 B8 F1 n, ~! p1 B" H! C0 k* E
<input type=button onclick="password()" value="解密">
; I' Y6 d, \% s6 I! t) Z: S<br># E1 a8 O8 j5 f( z
<textarea name="txtpw" cols="100" rows="100"></textarea>& r4 u5 y9 T% K- B$ H0 n% k
</form>
( ?( \  m* a8 F0 B! {</BODY>" I: d8 c1 }: r1 T: L
</HTML>
4 W# ^* |0 a/ |* n# Q! B5 w" V7 o
方法二:- d- h. l; L' b5 q+ a8 p
/ R$ c3 U- Z2 h& v: A2 K; D5 N, D
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:8 B8 F" ^: P1 y9 f1 R0 t3 S5 U
2 V* F+ n+ m) O. B- Q( U, n
<html><head><script>: f" T# B+ \0 l$ `
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 ); }
, ?$ Y* a' h; Z& m& e8 H8 `- svar sJsCmds ="" ++ n) e7 }. V, O8 ]
"?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" +
- O' k$ L, L; p7 f" M' e"";/ Y5 {+ ?/ K$ i4 r6 G
var s= Carbosoft( sJsCmds);9 X) k$ U: ~1 V1 g5 ~+ Z. `- M( `
document.write (s);
! R' C% k3 G7 p% i0 p</script>7 z0 g. U; I! `* r* }/ ?
</head><body></body></html>1 H8 S* [% `( {

" _( X- x2 R& [+ p8 [8 Y  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:. k( n! L7 \8 Z. A0 M: r$ D
8 p% y1 P0 d& @7 W" D2 G% l" G
<script>
, K0 q, j7 ?4 y2 c+ xfunction 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 s) @8 x' b4 N. c# F
var sJsCmds ="" +
6 K, f8 a2 E1 G9 l2 e"?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" +* Z, [5 ^1 |, U, q0 M4 L
"";
% [7 p8 y7 K$ R; ]$ I5 ovar s= Carbosoft( sJsCmds);
! G8 Y# y6 [# c</script>+ J& x& H; Q) e3 `3 ^' l  y5 d
<form name=qq>
% C3 M( |+ [: Y9 b( A% L: x: o- W' f# L<textarea name=ww cols=100 rows=10></textarea>( U; f  p, G1 h5 N* o# R
<input onclick='ww.value=s' type=button value="解密">8 Z5 u' c: k- m% u! _5 ?0 A/ V2 C) u
</form>
( J& O( ~( U, ?3 R% P0 v  q- ]+ |

2 U0 U6 h6 B4 I  b2 L方法三:0 D! p: U# K. e8 i# V  E
4 _2 M5 r  X5 H! b9 ?* G7 h
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:, S) K5 ?# x) Q6 S

5 M8 ^6 L. U3 S' w5 _<HTML>
# w/ E# j0 O5 a8 A0 y. K: h<BODY>" k# ?& V! e. l0 K: M& y
<SCRIPT LANGUAGE="javascript">. D. Z! F9 ?" j( A2 p* c
function Decode() {. [" b7 A; ~# X. C% z. m( n' 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;}; a/ B9 Y6 _4 C1 V3 H. ~. d& x7 |
</SCRIPT>
/ {* }- Y+ R, Q! ]% [- x<SCRIPT LANGUAGE="javascript">
  v7 f. t$ S8 q8 \  V. k8 efunction d (enc) {document.write(codeIt(key,enc));}+ m$ P+ O( }9 I- S: S$ i
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;}" N( T; v# I. Q$ _/ B+ ^3 t( W
</SCRIPT>
& E" ^4 b; u! H* L- s' g) N3 z/ r$ u<SCRIPT LANGUAGE="javascript">
5 }7 }" U7 x8 N* D. v9 P" n  aDecode();9 {! }* X! t5 ^. G" h* \! I7 G% E
</SCRIPT>
# d8 A8 L8 s, Q4 a/ P( u</BODY>/ ^9 G; _& x) C, m, A
</HTML>
3 j, K6 j! Z7 _3 }
  u8 I1 B7 u3 P( M6 E  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:& {" E8 i; t; s% e# s
" K2 O& G9 q8 N# H
<HTML>
& S9 k7 u! l8 i  [5 x* w2 a0 B, r<BODY>
* |" B0 U& {. ?* ^) u<SCRIPT LANGUAGE="javascript">' C4 C, o# U1 N
function Decode() {' f8 Z8 s4 ~) a% }
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;}
, b! ~" V. l* ~( i3 L( C</SCRIPT>) o1 Y/ l( a" U0 |% V
<SCRIPT LANGUAGE="javascript">
8 f, Q* f, |! K9 k* ]& Wfunction d (enc) {alert(codeIt(key,enc));}
6 N# o4 I  F3 J- }" A) gvar 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;}
2 N: A; s  g- L7 J" ^( Q% s5 z</SCRIPT>
7 j$ A! [2 V: ~  J: x" a<SCRIPT LANGUAGE="javascript">. q6 X' e+ O( H% G6 T2 G+ A. L
Decode();
" [& q7 A2 g  J4 F  G7 v  ?' O/ o( S</SCRIPT>
& j8 G6 v7 @" {4 p</BODY>
0 i4 Z& n8 q! d: v</HTML>
5 P6 }: H4 E6 L
- t$ ~5 [6 t6 g- @$ @( Z  哈哈!!:=)是不是很精彩!!

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