返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
7 |0 d4 b' u0 p; W+ w8 a/ m$ d; R& Y5 f

/ j! W! n! l2 n9 [方法一:: a% k" k1 n8 t- x, @! l: ^

4 |! a% B3 u  J' g* k
  b2 B1 j/ l; S, d! t- w  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
4 X  a' f$ w3 N, M7 k3 e8 b: p  a% m5 M2 w; h
<HTML>" [6 K; i) A" _+ X: s. }5 H) _
<SCRIPT LANGUAGE="javascript">4 V4 }: `+ J& Z+ D1 X1 `/ P
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"* Q+ t4 q5 F: I
var NewWords;
" z- r3 G8 _& a" d. A: `7 i2 n' RNewWords = unescape(Words);
. ]+ b4 Q; K6 v5 ]- P+ {% ndocument.write(NewWords)
9 Y. j% |% `4 D' u9 ~* @0 m</SCRIPT>9 U4 i$ b- r% e
<BODY>
+ z# u8 e& j+ M/ g8 }</BODY>% D+ y8 l9 F: U
</HTML>2 H& B+ d" |4 I* n/ v7 |
' V# a1 R; _* B( R# Q% V
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
: Y" c/ f$ l2 v4 f3 ^0 f7 N3 M( u
<HTML><SCRIPT LANGUAGE="javascript">
0 q/ _# j* }# g! R  u2 Svar 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/ o+ A- Q* }! \! c# t; c
var NewWords;! C$ S# x/ R/ I/ f& Y4 c; R" }
NewWords = unescape(Words);
$ m- ~1 q/ S7 N3 i  ~NewWords=NewWords.toString();- C3 {( J9 A* u% u$ ^
function password(){8 U5 H& \: |. ~  x0 R
document.pw.txtpw.value=NewWords;" ?  A' s6 O( I0 x, S0 D! B
}
- D' K) J, O  F  [! [</SCRIPT>
" ~3 M. b+ K/ g; I( _, a0 c<BODY>, v6 T4 Z5 n( P4 H  `. ~8 A7 z, X
<form name=pw># J0 f  c5 L* ^% O" e, e
<input type=button onclick="password()" value="解密">
9 j$ ^. T1 n( f<br># X4 e, c1 ?% e$ u# M
<textarea name="txtpw" cols="100" rows="100"></textarea>
+ U* `% y6 y! F: h! Q8 S, p</form>
+ z0 |5 U. e  M, O2 {, W</BODY>$ s  Z, F4 P4 V; G. \0 q: L
</HTML>
4 L. {2 Y4 V9 L% J9 `$ \% Z$ ], Q
' l( s8 D$ ^$ b" \# k: c: e  U方法二:
& ]+ S9 N) a9 X- H/ ]" n) C& |* ]* [# w2 s; x- s
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:3 y2 D; g) }( M0 Y! N& u
, p2 x8 i) b2 Z, t) i* e; p: ^4 K1 R
<html><head><script>
8 T$ ^4 T2 J8 Tfunction 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 ); }% @  {9 n/ _" K0 ^* r; p
var sJsCmds ="" +- F2 `! g- V9 c% _7 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" +8 T7 u( A4 o+ y
"";) e7 h0 }+ @8 U6 t
var s= Carbosoft( sJsCmds);
) D2 g  r) X& m1 j6 B' x! Pdocument.write (s);
1 I' k9 h& I- }5 h5 u</script>
; T7 T# C- e( |* I</head><body></body></html>+ C# V7 }. x+ t3 T/ E( ?
5 |! p2 M4 Z/ {# {+ [
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:, W! S7 R$ {' ~: A  r+ g' w) F* t  ~
8 M& F, j! c' l9 X; p( W# x
<script>
1 E1 D- v+ g! l8 S; h& K& 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% D; X/ N2 @; m- M6 Qvar sJsCmds ="" +( D' I* e5 i8 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" +! H: \5 L# @4 v
"";
9 D. n+ `4 y6 E7 Qvar s= Carbosoft( sJsCmds);) t9 r+ `) c- [7 E$ i: j
</script>8 I  E0 {# F. Q: j! m7 k
<form name=qq>
& u! n% P" N! Z& d, Z) ?; G5 f6 g) y) n<textarea name=ww cols=100 rows=10></textarea>
, o" W1 I$ Z; u& B. @& _0 @9 N  T<input onclick='ww.value=s' type=button value="解密">8 e5 C: v7 Z, ?2 N9 [" m) p
</form>% r# e9 p$ y$ |) L
4 x0 c$ m8 }. n9 B
& O8 t' I6 [/ R* B/ T1 H$ h! J
方法三:, p. R6 l* c9 b/ [
# T$ e- [( y; P8 t2 [9 G9 o  x
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
0 [" M/ |  F8 [& d; U6 y3 }
% x  h4 B! {- q2 U1 H<HTML>
( Y( s$ d* S1 z# }  G5 [<BODY>
8 m0 z/ g* B; Q$ e! K<SCRIPT LANGUAGE="javascript">
: C" |2 I( ]. _  R5 Wfunction Decode() {. C$ \8 H. L; e% ]8 K
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;}) e/ }& v7 Q/ I: y6 g2 O
</SCRIPT>$ a" Q6 g# ~( H1 L& _, G
<SCRIPT LANGUAGE="javascript">
; X. S' F$ ]: Ufunction d (enc) {document.write(codeIt(key,enc));}; N# [7 c8 s* B8 Q: k% C( F
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;}  g# I/ U: V' f. g2 D
</SCRIPT>
) X/ f7 }  K- i6 S3 f8 x/ `<SCRIPT LANGUAGE="javascript">) Q! v* i+ @6 \* `
Decode();
) M% w1 g* d4 @- L7 A, r</SCRIPT>- Y4 D9 Q9 Q+ \/ h
</BODY>
' J0 r" t4 \& G! y, J/ @5 }</HTML>% W2 I1 c% x! O. e
( u4 q) O1 Z# |
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
; ?% Z! H7 I8 S7 c6 a* _+ k4 L2 `1 x/ x* o$ R
<HTML># a0 C. c( {- n1 B) y' y
<BODY># |4 f3 ]  s3 U; j* [  |
<SCRIPT LANGUAGE="javascript">
: ]5 s  W2 S0 H5 sfunction Decode() {4 z) |- O: H) p7 V1 I
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;}1 d( H- W9 X' g2 U4 y
</SCRIPT>6 @% R2 l# v* c+ d- a
<SCRIPT LANGUAGE="javascript">5 J" V- ]$ }0 U8 M
function d (enc) {alert(codeIt(key,enc));}
9 T6 y+ j/ ?6 A6 B* C) `) V8 [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;}4 H0 @1 k# [  p" Z, ~7 T  ?4 @6 v
</SCRIPT>8 a' w5 \$ x& x3 q9 Z
<SCRIPT LANGUAGE="javascript">
4 i8 N5 `6 f: GDecode();
& A! B2 F+ R+ _. _9 k. }</SCRIPT>, ^, ?, }+ d7 g. V
</BODY>  l& ?. w/ \: Q$ l( \) w# N; V
</HTML>
& a+ I/ K  @: l3 [- Y' M/ I. A  V- M! Q( \
  哈哈!!:=)是不是很精彩!!

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