返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!$ `& Y& q% u5 _6 }  @
' E; [1 g( F# \2 ~
; N$ ?/ x* @- e% B4 r, p
方法一:
; K; X( K# c2 U* j  O0 ]/ a( |' v% U5 K$ w4 G

8 [# N6 B) S4 ~  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
/ i! W; y" A  s( X1 V) ]% k" x( l# O
<HTML>
2 P$ e# p, k- h! c4 h4 q<SCRIPT LANGUAGE="javascript">
3 T6 m+ \! o0 }/ s/ R9 Lvar 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" T' V( V/ F# G3 [2 avar NewWords;
; ~/ W, n; R' |" e: r5 o. lNewWords = unescape(Words);, W. {% Q+ g; j6 h
document.write(NewWords)
+ o; @$ k3 R( k2 K  r</SCRIPT>2 ~6 q+ D# s0 F
<BODY>
' h% F2 P8 {. n* ?  Q4 D</BODY>
. d) X, r# V4 e( D( q1 N' I/ ]</HTML>
8 x/ |; u; ]' y% f8 t: r7 z* A/ @6 P* o1 @( O+ P9 O
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
# U+ O; j& S6 B! x4 J
& ~* Q8 T0 q/ p5 U0 W1 L<HTML><SCRIPT LANGUAGE="javascript">
/ B8 \; }$ [# {5 qvar 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"$ q& L/ E( ?3 g6 k+ y; }. r6 K  Q
var NewWords;
- G6 ^: L, j/ y% Z% o- D9 nNewWords = unescape(Words);
4 X! L0 K6 a0 c. S$ d% O. \, |NewWords=NewWords.toString();; A( V  w, b1 u& @4 l
function password(){
( J# d3 v  ~! `# Mdocument.pw.txtpw.value=NewWords;2 Y  ~1 Q& B" D
}
! v* m3 F: v( i% [</SCRIPT>
+ {! d& B  H& C% B/ C<BODY>
  J+ M, e1 J3 d: f8 c<form name=pw>  r( Z! I' ?- z, b) I8 J/ {
<input type=button onclick="password()" value="解密">/ {: u0 u. P) O  P. }1 Q. \
<br>5 u0 C; i+ |4 Z8 k* X- {
<textarea name="txtpw" cols="100" rows="100"></textarea>; q% k, O5 y1 g
</form>( I% ?6 H) s5 O% G8 t  R" L) ^
</BODY>
. }% h, |& s  c/ |& i</HTML>% N+ k4 t7 l. e. ^  X

$ \" e5 s* K) F$ B方法二:
  I/ ^) w  J7 ^) N
0 x/ h, u0 E/ d5 q2 D' |  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:2 v, G1 S" L  d6 t- n2 A5 Q& w
  C0 R0 h1 A- h1 [3 [) S5 q
<html><head><script>
+ D0 B# k8 J% M( b% q% Jfunction 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 ); }
$ G% A5 ~: d$ O; o/ {3 d& [6 E: u7 |var sJsCmds ="" +
! K- R% p8 e! r' c"?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" +
/ l3 O+ X$ M0 Z& L"";, g! G3 g% W9 ?
var s= Carbosoft( sJsCmds);
) J$ r9 A9 l4 O0 U) |document.write (s);
/ h! v4 Z" m$ U/ b2 H8 ^7 h* N</script>
- v, L+ B8 b6 m; P</head><body></body></html>5 |4 I: b) \* E0 P3 D) u
) ?9 ]/ }6 q# o$ ?/ _
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
* E* k8 [2 h' j% r# ]" p  y' J& m  C- H7 m2 S% G" L& Z
<script># {& P' K( @" U- }5 z( [) 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 ); }6 I: G5 Q+ f' `
var sJsCmds ="" +4 N: I  o) W  U3 m% b. O
"?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; ?, \4 j$ r5 R+ ["";; k( [1 F0 K$ L( ]7 A8 C0 b$ \
var s= Carbosoft( sJsCmds);  {3 _; G" n6 k+ s. S: b
</script>+ A9 k; H; f/ ?- D5 z6 D
<form name=qq>$ n/ B. V* S" S5 n% {3 w2 g
<textarea name=ww cols=100 rows=10></textarea>0 l& u$ N, y8 v( j6 f8 r% C
<input onclick='ww.value=s' type=button value="解密">
; x" a7 B" R7 |+ v" f$ |- K5 I4 j# d" P</form>
' X0 Z+ y( B7 z/ E% O! p2 [6 g" f, n0 `$ N

+ {4 B1 N* a& t& f( a/ {; j9 L方法三:
5 j0 A, q0 A% E+ Y6 |+ Q$ U; y
" E$ D4 w" ^1 Z# O  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:* s- y5 ]5 B' G) d) J; N# a1 F+ A: e

* W! L) F/ t& x- D1 H  T<HTML>
4 K# p: c0 A" M% ^3 h<BODY>" D4 P; }8 \) p
<SCRIPT LANGUAGE="javascript">; I/ }+ P, G! j! P  B# R
function Decode() {
+ ?+ w, b) B3 T$ b4 Ad("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;}7 \/ s$ B3 E. H9 H! k. Z
</SCRIPT>8 Y1 W5 K+ C0 Z! G. E" Q
<SCRIPT LANGUAGE="javascript">
. L! M. u) ]' b) z& Dfunction d (enc) {document.write(codeIt(key,enc));}
# o4 {; y) V9 e% N1 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;}
5 a. Z/ L5 X- b</SCRIPT>
  j/ p' w4 v% k! |" f<SCRIPT LANGUAGE="javascript">
, ?2 V5 j( i6 Y+ d+ Z# NDecode();3 ~% n: Q( ~3 g. w! l- ]
</SCRIPT>( Y( J, a, @" B7 v6 @
</BODY>
0 y& ?3 @" u# d& W" d0 e: e* _9 j% v</HTML>
$ e0 A' h2 k3 Q/ S) P" Z; H! M$ p2 A2 w) @1 S
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
: P% `3 R+ W, ~- j2 x# [6 Z9 J2 F- Q  L4 q9 A4 v* w) E
<HTML>
7 Q) R6 `$ c' t4 @* e0 i<BODY>! v; B& D" a9 u4 x: I
<SCRIPT LANGUAGE="javascript">
* z+ F$ @1 w; Y( ~. w) r' Ifunction Decode() {
' C9 n8 P5 x2 j) O+ W/ ad("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;}
1 A+ e" F; h; v</SCRIPT>0 M* y: G  I7 L& k
<SCRIPT LANGUAGE="javascript">
# Z3 |6 f; M- X' }( M! Hfunction d (enc) {alert(codeIt(key,enc));}
8 n# m4 i4 g. u, G5 Vvar 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;}( {) F, _; p3 [# q/ [9 q+ z5 a: f
</SCRIPT>% O  B* M$ I" y3 N' t9 p
<SCRIPT LANGUAGE="javascript">
4 x4 v. E' i$ b/ S! MDecode();
6 T' I6 k  E0 y</SCRIPT>1 O+ e* Y- C. j: v  ~' Y
</BODY>2 l( p& ]2 I  x0 }) C' u  D
</HTML>8 u! P1 d* }- {: J: G7 f: ~' s
9 f9 u% D8 a, @+ ?2 i/ E
  哈哈!!:=)是不是很精彩!!

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