返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
1 m9 Q6 W1 V2 J1 F$ J+ C4 q: L5 l7 J, z) L+ {2 a% C

; f. t1 A  L( d. ]9 Z* W  m; x方法一:5 J: ~9 A4 A0 ~" o
4 B+ {$ N7 ^& S+ }
2 a+ u2 E$ D9 S! C% y  k+ t; I
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
& s+ I; m0 i* Y/ f4 g+ f7 _/ k
; s* F# O0 Y& s* o" \1 p( @<HTML>
) i+ H7 v) k3 J. y; p<SCRIPT LANGUAGE="javascript">4 u# z. {& ~; _2 ]
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"5 J% e+ i5 ~# K9 B  g" q4 [/ P
var NewWords;6 O. @- d  ]8 U8 |- ?/ m, {" _
NewWords = unescape(Words);
: J6 M6 K4 V: @; @" ddocument.write(NewWords)9 M0 T4 f/ F5 _1 t
</SCRIPT>1 Y  d5 P- Y% A- p- I4 u. \" n
<BODY>8 v+ f# f" n$ Y. x
</BODY>
, {% N. R. h, ^: Q</HTML>8 G4 Y. L: a; j

2 @: s( h) q0 M  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:. E5 s' x6 {) s2 |+ i. e: Z; M/ W/ z
) M) z7 w/ ~. R0 f4 @' c
<HTML><SCRIPT LANGUAGE="javascript">0 {5 M' i/ G+ p' x
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"" t7 M2 F( S* V, f/ I
var NewWords;
0 @  p- j& K; c. fNewWords = unescape(Words);# E) B: q/ f( ^) Y, G" K. G, {
NewWords=NewWords.toString();6 K! I& l2 L; b7 E5 }( C
function password(){
; Q9 Q/ B0 C& ~4 {# s! |document.pw.txtpw.value=NewWords;! F/ [" s. K; [. X$ b7 I
}
  i* |; B& \2 S$ P</SCRIPT>1 i% {5 `6 [: e3 R3 a+ P3 n% b
<BODY>
4 W8 a' p. i6 t, h- f<form name=pw>
) P7 |2 v! p, J3 Y6 N<input type=button onclick="password()" value="解密">  ~- S0 q) F& z4 l
<br>
8 k4 ]% K- f6 w. ?/ L# I7 {<textarea name="txtpw" cols="100" rows="100"></textarea>' _2 q" C( M- H1 y9 i: O# Z
</form>
& ?# ^* o1 n( j8 @. S- M+ a</BODY># c; G( [3 |$ i/ U# H4 j
</HTML>% y) a- ^7 B8 j" L9 p6 Z
  I7 |) h1 @# L. b! f/ u/ j
方法二:0 l( v2 `8 I% L' Q9 n# A) @9 W
$ O. G) J4 i. t3 _7 }0 t
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:* m% S. L  p/ Q# ?7 a! Z8 o
2 E+ t% D6 X8 s/ p6 }* A
<html><head><script>" K. H2 k' I& ]; K0 w' H. `
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 ); }* u: g& ~& C7 P( ?
var sJsCmds ="" +8 Z  |" g  A, H7 y# j$ V
"?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& f+ j
"";& b7 _' f; ?1 B9 V: i
var s= Carbosoft( sJsCmds);
# J. L6 v; y$ H$ L: @document.write (s);
0 J6 r5 p9 J# e* G$ i</script>
7 i/ X% t: e9 l; @2 f* t  B/ S* {</head><body></body></html>6 U2 n& G) s5 {6 ^- C. Z

3 K% o9 h# g3 [- W0 l/ l/ y/ g. Z  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:( ]; p! K. T; L/ P0 j
  e1 ^% e+ M, n) Y8 A0 }  i+ y
<script>* [! U3 P. O/ w7 |
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 ); }4 k: ?- r. ~2 B
var sJsCmds ="" +: p6 {2 Z9 l4 m6 [! X, {
"?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" +
* G+ P7 A4 H+ v"";
$ i( O( _! s$ v+ l$ Ivar s= Carbosoft( sJsCmds);5 O' o- Z) b: z4 r) G' |+ I& A
</script>
+ ?9 [# V! e* s" a<form name=qq>4 X  M7 E4 {4 I! b4 L7 b
<textarea name=ww cols=100 rows=10></textarea>( ~. i6 Z* p) k. z/ G
<input onclick='ww.value=s' type=button value="解密">8 c( ?, K# g9 T4 k% d2 s
</form>
3 h$ y+ |$ W) V! _
, t! q$ L8 v0 B& N0 U# Y( h& V# Z. G* ?
方法三:  K# G4 ^3 k7 A3 J6 u% s: f
. A' c6 c0 y2 @
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:; Y/ [; A/ ]8 F0 V* j1 [( e
& L+ m9 E3 K, A' ^, V! u
<HTML>4 M; ]: e, a' U- p) V) J9 x
<BODY>, V' a6 b, V; r2 q& o3 [' d$ P) U( W
<SCRIPT LANGUAGE="javascript">
! v8 x/ C. i; F- r# Lfunction Decode() {
# a6 D  m7 {3 n2 F) a& [: |' Q1 I4 ~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;}
# T! k7 i  d9 ?, _' B! k# m3 ?</SCRIPT>
! y: x# e/ @) b<SCRIPT LANGUAGE="javascript">- `, O7 {# q# Q" B- a6 s
function d (enc) {document.write(codeIt(key,enc));}
* X  n% Q0 G: A' c0 tvar 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;}1 t/ F( f  e0 ~& {. k* {2 c
</SCRIPT>5 C0 M$ B: D- O8 {, t* t; w9 {, r
<SCRIPT LANGUAGE="javascript">' o1 h5 q2 j1 Y
Decode();7 a$ u/ y, z$ j
</SCRIPT>
) B3 l  Q  n4 J+ m</BODY>
& e' W% O: g$ Y6 L% E</HTML>1 C' {1 m; V+ C$ s" F
. }" K: `$ U/ [1 @5 Q5 F
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:: F' \' C' l0 b8 y2 t; W

' j0 ?2 m2 G3 Z( Q! Y" {<HTML>1 E) b+ }8 j" S$ I# D
<BODY>
; J6 {# p/ @7 d% K5 Q* K<SCRIPT LANGUAGE="javascript">
8 N/ P( u/ h7 b# K- efunction Decode() {
3 b) u. q2 T& X! [: Q; P% u% 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;}
4 p0 y! T1 K; @0 k</SCRIPT>
$ y7 v# c$ d! W5 E5 r+ U, A<SCRIPT LANGUAGE="javascript">
: d3 v- Q1 b. b: }function d (enc) {alert(codeIt(key,enc));}
3 y9 T) _/ Y$ r1 o& ~1 U9 ~5 C3 {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;}& D+ `2 Q# \% ~9 Q  B% f
</SCRIPT>; V- Q  H, |  _- ?" o6 [
<SCRIPT LANGUAGE="javascript">: l+ G3 l. g* \- I! J9 f. ^
Decode();
4 M& q2 U* o' \</SCRIPT>
* v# {, g( P7 n: F</BODY>
# X/ J2 B* Q- Y</HTML>
( u+ J/ Y" L: w8 s9 v$ e
: w4 ~9 L  q4 T  r5 Y# W  哈哈!!:=)是不是很精彩!!

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