返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
  h8 |4 |) o5 V2 N9 U( {$ A; L$ Q! h9 C! \

, Q4 N3 |; P, i方法一:0 {6 d- |4 S7 Y, H) ^8 Z

# ?1 [* [) I; U! V$ I3 n1 H- u
7 @. w) `# X2 o. }5 v% j  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
( n4 P: R" E: ]
( J, E3 l$ ]! c$ o<HTML>& Y* r. I' s6 `$ f2 t1 n
<SCRIPT LANGUAGE="javascript">8 _5 P# J' n/ Z7 e( 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"4 w; v" Q2 D$ z8 U
var NewWords;/ |7 g$ H2 k' _( G! S9 |
NewWords = unescape(Words);# x6 k; G& d( R6 B% l" N
document.write(NewWords)( }1 @6 I! |+ I# @% h; H
</SCRIPT>, O6 O% C) u6 B, n: ]
<BODY>
6 s4 w6 r1 |: E! p</BODY>
: a* a% ^, I1 S) f$ t</HTML>- |, ]" d( e8 Z6 s/ E6 {

# f8 l2 e! Q" B. _. t! E  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
) F8 n8 U' m% c4 ]# B6 H7 k% Z2 r5 [6 N7 t) l
<HTML><SCRIPT LANGUAGE="javascript">6 `+ g% R, h" y: D# S4 |4 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"9 C2 q& P, U! s! H$ u
var NewWords;
8 z; I0 g7 s( p! H$ s. S3 `NewWords = unescape(Words);% ~4 }$ ]( _% C% a6 ^% i
NewWords=NewWords.toString();
0 o# ^0 b; @) H6 d# p0 hfunction password(){
* ~6 N' q, i9 _( N0 }document.pw.txtpw.value=NewWords;
$ H# y7 f& J  Z7 `) ^4 W+ B- h}
' h0 C7 I: G+ N' L  a7 s</SCRIPT>
- r3 |& E/ l" g8 X6 |4 h+ J<BODY>% q# N7 w" M' ~! ~9 b# K( C
<form name=pw>: B/ p) j2 p) y. o+ b+ J: W7 e
<input type=button onclick="password()" value="解密">
; X/ C/ B3 \, x# J, r# M<br>
0 e7 B* Q1 k% d9 `  {/ W# |<textarea name="txtpw" cols="100" rows="100"></textarea>! Q1 Z: u0 p" h: C) \9 N  h
</form>
8 b- c( v; v) ~  H% \" H</BODY>
2 W+ a0 q$ s4 `: D</HTML>; h( \1 x, a7 R! T
. D) B, q1 P1 Q- m- ~, f
方法二:
% @' Q) N, H% S+ |0 I
3 W- V# d& P8 \: p; l( i% ]  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:' L0 j" w' t. u& I% m/ z1 V

5 x) Z* y( M2 o7 O* z; b: J7 r+ K8 S<html><head><script>
, B$ ~, _9 r, rfunction 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 ); }% i7 I0 d8 _1 b6 ]
var sJsCmds ="" +$ j& g! K1 y/ E' h
"?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" +
4 l6 s# w( Z) T" L2 F* z0 C"";
$ q# \5 n# d4 h$ r7 B1 K, z# nvar s= Carbosoft( sJsCmds);
3 V. T' ]& R4 U7 K+ Z2 adocument.write (s);6 g/ `5 v% \7 P) F
</script>
, `5 N; g& {) b. b( A  M! A9 T; [</head><body></body></html>* J$ ?% ^4 w- }
: [: l3 Z- s, b% J3 C7 u9 }* V
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:+ |0 m  o+ ^& J3 ^& C
3 k* O* ^  Z% f& J. [  f- P
<script>
8 t8 o% Z+ \* F' B! i2 g- Q% pfunction 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 H( O7 K" v* F0 [
var sJsCmds ="" +
" m* o& Z2 P: S' r8 r* b"?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" +% i+ z. `& d0 S3 s" S9 ~) z
"";. C) W0 }/ v# j
var s= Carbosoft( sJsCmds);! E0 z% o' D' U! j/ \
</script>
. W/ z! N; N; O! ^<form name=qq>+ z* r8 d2 A  e
<textarea name=ww cols=100 rows=10></textarea>
; E) p( q/ k  k; j<input onclick='ww.value=s' type=button value="解密">: y" |/ c8 z/ x3 h
</form>
$ W1 w. X8 V) J% Q6 n
9 w9 F7 e! m7 y" r9 F2 x# s7 ^" J. D! }/ u4 a
方法三:. F/ W. Y; Y7 S3 x2 V
1 O0 z) Z- f2 z  L
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
8 F: U* F( i. M/ E% m0 W! C  |6 B3 T# U" ^
<HTML>* H3 q3 U- }5 h& m
<BODY>2 @* y- P9 K' U, {" k
<SCRIPT LANGUAGE="javascript">. U+ o4 c- s* |# I$ y
function Decode() {
& X' W0 k; N% K8 z; X: t+ Sd("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;}% k& k7 l1 p* U" q$ P- ~0 U
</SCRIPT>! h/ u6 W/ c: z* J+ v
<SCRIPT LANGUAGE="javascript">4 e7 H9 o$ b; _
function d (enc) {document.write(codeIt(key,enc));}
# I# ]7 m* y  k" 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;}) S9 z0 ^. P7 c( f
</SCRIPT>, B7 `6 U: b0 D$ Y/ l) O9 d7 Q1 D6 x8 w
<SCRIPT LANGUAGE="javascript">
5 O4 T6 ~5 n* [7 [3 _7 g, gDecode();& T* p, _9 f3 a$ L8 |( t
</SCRIPT>
% h3 e+ A  w; w</BODY>6 \  ~% E8 j1 J9 p7 K' a  g8 `; x1 C
</HTML>
$ T! m  h, X5 A: f6 A$ B6 H
4 {" [& R  z5 }! d. K  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:0 i$ ~, R1 H, y4 G3 |8 S

, X2 Y4 l' w( ?+ m( A$ l<HTML>4 h2 ]) l' p" E# B* j
<BODY>
8 i* x) }/ S" a<SCRIPT LANGUAGE="javascript">+ d' n# H' X1 z3 q9 h; c
function Decode() {
& R* N* }& n6 X" T% Td("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;}$ e7 }% l9 ~5 t& \
</SCRIPT>
5 Z: o5 H  z& u0 }4 D+ M, Y9 D+ Z<SCRIPT LANGUAGE="javascript">
7 y$ y' F) `& R& J/ {' mfunction d (enc) {alert(codeIt(key,enc));}. ?$ H) j6 n( s$ R/ D+ h% A6 H: |
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;}
) {) |" U3 j7 `6 `4 B</SCRIPT>& ^2 b* @# p& |3 _
<SCRIPT LANGUAGE="javascript">
, x% _4 g5 H0 C6 w6 N( @Decode();
8 k) @) o7 @! i0 X( H6 D</SCRIPT>
9 O7 y1 ]1 c* r5 g- Y! J. b</BODY>
# R7 I9 d3 u9 z+ C% r9 O7 M7 H  Z</HTML>/ Y% D! `8 v; a2 B. X

6 N+ c# U6 h4 V2 b  哈哈!!:=)是不是很精彩!!

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