返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!* U/ B  q9 o8 C  x/ P
- x' V1 s+ u& m. M# p2 B

8 [" N9 i0 V' J& d方法一:" Q& p. b+ m2 j6 J: H6 D- l1 s

5 z6 T5 {: z; H' u* i6 O6 C
" U- P* j# u+ N8 g% [  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
$ l* N) C% U/ o3 `5 z, M) V0 _
9 l( j+ X* C% h3 I$ a4 u<HTML>
+ F9 d8 t. i0 g% c) ~1 K' w1 P<SCRIPT LANGUAGE="javascript">
% _( [! |/ k3 S  r. F" n4 L0 Tvar 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"( B2 J  `5 t5 Y. I' \5 t! u
var NewWords;
$ _# C( y# d% k) xNewWords = unescape(Words);
5 I% ^8 L5 h- q+ t' ^. J+ ~document.write(NewWords)
! x, W, |  }! k- R</SCRIPT>
. E7 {2 {3 t: S- `<BODY>
# r& x- g" m. H- @3 G</BODY>+ n- X" W) E! N" D
</HTML>  q5 |+ R3 Y* V' Y
  F7 Q) y; H! }4 ]
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:8 q$ Z1 K2 i4 k

( A7 R7 K6 [3 z( _4 ~, P<HTML><SCRIPT LANGUAGE="javascript">
% G5 T3 K: Y4 b3 S& a0 Ivar 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") N# I; u0 E# R/ X7 o: m2 _/ N/ ^  C
var NewWords;, c; J; ?# i+ k' e
NewWords = unescape(Words);
6 F* b+ m. W5 H; K8 SNewWords=NewWords.toString();8 n, v# ]5 L$ l* e: k+ I9 I  w5 v
function password(){+ i9 {1 Z4 w1 c
document.pw.txtpw.value=NewWords;
- x' J& A5 E; s( [- v( m" e* d  \3 \}* D0 n. c+ V8 L9 @) h. o+ e" k0 |
</SCRIPT>
% c5 S8 a0 P0 R! `' D$ f<BODY>6 T( P! A( l  v; t' ?! [, O
<form name=pw>
- g! P; j/ O2 W& F/ z; ?/ U5 F<input type=button onclick="password()" value="解密">8 G& C" p! o& \7 b
<br>
$ k* |7 G# T% R7 v<textarea name="txtpw" cols="100" rows="100"></textarea>4 K% U$ J( c! d& O: o: @7 ]9 u
</form>0 S' ?1 s" M: d$ K7 B- S  ~
</BODY>
1 I7 e2 n1 ?/ q+ G4 O3 |</HTML>
+ [3 F+ K+ x' E6 U% c# y% d1 D3 b0 k! u7 b: g' w. d4 m
方法二:
0 K1 r: o: M0 l9 ^1 T; l; C
0 y/ H" e4 m$ X, g9 ]( [0 G  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
/ P$ a7 h0 J" B! x( r5 N- w$ ^1 r; s/ C. X
<html><head><script>2 }: K" Z6 n) h9 A4 j
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 ); }
7 x2 Q' X! E2 ovar sJsCmds ="" +
! L! y  v" \0 x+ E. M"?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" +: |0 l7 Y& X3 T. f1 ]
"";) V* s9 U1 P( ?4 s
var s= Carbosoft( sJsCmds);- A1 S7 `* U) w+ z9 O" u
document.write (s);  H3 K, i( `# s. N: v
</script>
- r6 L, e5 B& s  M  ?8 ]( l</head><body></body></html>
. j- |3 [' j) u5 m
6 K- R$ u  S' l, G4 e: E( t  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
. c1 i4 T/ V0 X0 H# ^6 b
0 t7 ^0 z* D" h% l) k  J<script>
5 s7 Z5 I+ a' r9 afunction 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 ); }; C& a" s: b' C2 [4 k) C: B
var sJsCmds ="" +  \" C2 j0 A4 A7 D2 h+ I6 |& L. z
"?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" +
5 v0 w1 n: q: [/ ~! I& d"";
9 B6 f# x7 Z8 {8 ~var s= Carbosoft( sJsCmds);
/ G0 Z5 L# A% C, Q</script>
+ _6 l3 F# q- @' c! ]- K<form name=qq>
- j& m, h+ a4 e<textarea name=ww cols=100 rows=10></textarea>. `6 \7 }8 F8 a  B  P/ D
<input onclick='ww.value=s' type=button value="解密">! n8 a6 h/ }" _: Z. T4 [3 E
</form>
9 Y# N* {, Z7 R1 p. ^
/ c2 N( E5 h- r) `0 z; G/ E
2 |1 P# q4 h! N* n- X8 x方法三:3 I  j$ G! _2 A0 t4 r

( b) O2 w9 J- l" s  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
* W1 d/ {) J% V+ X* h; S# C- y; ^" c7 ^! R7 P
<HTML>
" D3 [0 }0 r  _" s  U<BODY>
  ]# E; J, v' n% R8 |* v<SCRIPT LANGUAGE="javascript">+ a8 @5 Z6 _9 I3 N4 I
function Decode() {: u- _9 A* G7 o$ o8 r# O8 N2 x4 ~
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;}8 s  @* S8 n. m! d& S
</SCRIPT>: B9 S6 L6 s1 l: B; Y# e
<SCRIPT LANGUAGE="javascript">2 r; Z! r  M% a2 C% d4 j1 ~7 w+ L
function d (enc) {document.write(codeIt(key,enc));}
1 _) U% P( o/ P" z5 _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;}- J! M+ Y( G- V9 S8 w8 w( o
</SCRIPT>
2 P8 D, ~- A8 P& i2 w  P<SCRIPT LANGUAGE="javascript">- [3 l" [5 @5 t' S
Decode();
- ?' M+ u% s% B/ n! Z0 H</SCRIPT>- V% W6 ~( l! w4 w' ~8 S4 P9 Q  D8 t
</BODY>
9 v6 `1 `0 M& T& Y</HTML>+ X- [6 p8 u+ E1 }( i
0 W# c% k# \4 g1 }! {. W& ^/ w' x# S
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
4 ?* D( R- J$ W$ I5 i" A3 R4 `( \8 h
<HTML>- ?/ P5 g) u8 D. c
<BODY>
2 j' O9 u  `7 k<SCRIPT LANGUAGE="javascript">
( q2 J2 e) [% f' x' j5 Q+ A! ]/ zfunction Decode() {9 ]* [; }3 p2 R' w
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+ ?, Z; `, F/ x- \% n
</SCRIPT>
1 I+ b5 y  ]  U5 Q<SCRIPT LANGUAGE="javascript">( H* a* I, c  v3 a$ `" X4 G
function d (enc) {alert(codeIt(key,enc));}, t) T. a3 V9 z/ G9 V1 {
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;}
, Z+ y' E9 R2 o) C6 z7 K/ r1 b</SCRIPT>, Q( O- D5 F  ^5 }. ]
<SCRIPT LANGUAGE="javascript">
) s9 b+ b; }6 U" XDecode();' R& W0 c. X" G- @3 C2 V
</SCRIPT>$ g) t$ o8 ~3 Z1 h) q7 O3 d! h
</BODY>7 T2 j  F1 \2 Y2 Z4 N
</HTML>
  J/ n# r6 J( t; G
* K* Y# M+ `4 _6 B1 j9 Q9 G* V  哈哈!!:=)是不是很精彩!!

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