返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
) R( Z$ d' p6 c* c" n* B" Y! J
0 e' n" z3 C8 ]& E8 E" ?1 ^7 A% E8 S# R+ M/ v6 Y% c
方法一:
* K. C" ?( S# F, x. K- g/ r$ I  ]3 p+ y2 b2 B* w. f7 r: }
& v" j" _3 z  _7 P9 r
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:) _. M0 I& E  o

+ N" i6 I* p% b$ A; p6 b<HTML>
% @, A  P7 E8 Q, m5 C8 M/ q# P6 l2 N<SCRIPT LANGUAGE="javascript">
. `% p# J, i& `9 _2 uvar 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"2 \- R1 S5 k$ R# t/ {5 _3 P
var NewWords;6 C& E( f/ {8 h7 Z' l
NewWords = unescape(Words);
9 I! l& A, T5 b  \9 q% kdocument.write(NewWords)
) [- B4 a/ F+ J% N& C</SCRIPT>1 |$ c( c3 e( y; m1 C4 }
<BODY>
* i, k- X1 o( S. o9 V0 }( ~</BODY># ]  F/ z( U- u
</HTML>, j# s' D7 Z( l. b* j- r! L: ^) g' r
5 D4 d8 h% b, i! n. P# Z
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:5 f5 |; k5 d# q6 u/ Y( J
& \* d2 N  a/ ?$ \
<HTML><SCRIPT LANGUAGE="javascript">  v& c" Q6 f3 M2 ]) W
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"6 b- Z* S/ K; \8 C% G4 R" i2 A
var NewWords;
) n% y, [4 P1 oNewWords = unescape(Words);
0 m- P% O% w# M" n5 q* \( |NewWords=NewWords.toString();
& y) M/ J6 O7 X7 ?function password(){# Q: `, R3 z) ~5 m1 R
document.pw.txtpw.value=NewWords;
1 r/ U7 y0 v( G4 o+ g}7 ^" u6 E, [" q$ l: h
</SCRIPT>' S3 n% X* z$ Z1 Y- h
<BODY>1 [, [3 W- q$ L2 ~4 A6 B
<form name=pw>. ?& k% a8 v: a
<input type=button onclick="password()" value="解密">2 V& d8 K& e  p) `! d( o
<br>
/ O& O/ N; a2 m/ c<textarea name="txtpw" cols="100" rows="100"></textarea>
' W! y& S$ O' ]</form>
- J7 o4 n* a3 e</BODY>! o& M; w/ p5 x, K  J1 o+ R  |
</HTML>6 v- \2 z: ^0 [* J" a% V
" E) K1 K. N9 q
方法二:  M: @2 j" S3 v& O' y, c

* S' m9 u, P# B7 P  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:5 ~7 t6 ^( w. }) B0 H4 f( g4 n. N

: V6 g" }1 D' o  c' t<html><head><script>% c# u# }9 U' [& o
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 ); }
- _" k/ h  x9 N; u- Uvar sJsCmds ="" +4 E1 }9 D! R3 }" R( n
"?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" +; H3 d8 ?1 N, p
"";
9 H, U, L9 d" V: `; m' Y5 Bvar s= Carbosoft( sJsCmds);
/ r, ^! \/ a/ Y2 E6 A) S5 Adocument.write (s);* {2 f* ^; q& K: u  b
</script>! X$ j6 H  M, D0 ~* g
</head><body></body></html>) v* r4 V" P. ~# `  w, p+ T
4 u" C6 e: R* X  B. E
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
; y9 K3 O# H8 k& {" q: h$ D) g# g
<script>  n  ?9 Q+ [5 d  q& m2 ?! H& O1 G% \
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 ); }
* j8 b8 m1 m6 \. ^% c7 @4 F) Mvar sJsCmds ="" +
5 {6 `( v5 d) r7 P8 k"?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" +, w4 C0 @8 `% P1 l
"";9 P2 h/ Y7 |/ S: O# i
var s= Carbosoft( sJsCmds);
. |& S+ V4 |. h% E( ]2 `+ i, f; b</script>
9 H3 }% W& o9 }<form name=qq>% T! I+ _* M( C/ H
<textarea name=ww cols=100 rows=10></textarea>
$ F: l. b: H' c$ L6 c7 H<input onclick='ww.value=s' type=button value="解密">3 C6 c8 ]  L  f; ?# x3 {& Z
</form>
- Y9 x# a, h9 N, Y+ ]3 f
1 L+ R- P. V+ Y  I. u' `* \7 {+ W" ^; k0 o# j
方法三:3 X& o9 m1 z$ w

2 h, ?4 X  u' I; w5 h  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
5 @% M8 P+ G3 j9 A4 D0 o( J: U4 v( R- Z9 ~8 B) o/ m# @
<HTML>' ?3 k3 D9 N, @/ ^+ L6 ]
<BODY>
, }/ G& `5 V$ }3 i9 \/ y4 ?<SCRIPT LANGUAGE="javascript">: Q9 B2 c# {3 p4 d) U! ?
function Decode() {+ D* s  S: H2 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;}
4 H" f  Y8 `- p( {- K</SCRIPT>
5 u! o% Y# d) _- S% i" `9 ^7 I<SCRIPT LANGUAGE="javascript">
, z2 U. x* F0 U$ {( v9 F$ |function d (enc) {document.write(codeIt(key,enc));}
, N* E4 b! g9 cvar 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 [. G" J( C/ q& M5 @( R
</SCRIPT>
( F: O7 J' z5 o" N* }6 c<SCRIPT LANGUAGE="javascript">
/ Q4 n1 ^4 c5 D& HDecode();. H1 d1 |2 T$ J
</SCRIPT>
6 l. ?) C  K! R/ }& ~" S</BODY>
: s% }6 Y! Q0 H3 `. {: ?, ~</HTML>5 \. u4 a$ ~& K6 U+ T* X

6 Z' i' C" r5 B8 h9 T) g% f  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:- Z% [9 r) _# ?' j- V" r

, X  r# f- w: ^/ {" Q. M9 k<HTML>' e! I7 Q  i0 g3 L
<BODY>
6 _8 w* ]% f8 Q( R1 g, p<SCRIPT LANGUAGE="javascript">
, F# b8 r: D  B1 i; o( pfunction Decode() {4 B% h2 T. ^7 o  N5 ^; ?
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 I& u$ f6 @4 P, X. g. I
</SCRIPT>) g, S6 ?7 n9 N6 J
<SCRIPT LANGUAGE="javascript">: l9 i5 y7 @6 @5 L& D- i8 O
function d (enc) {alert(codeIt(key,enc));}
  X+ o6 o9 Q5 n4 h# i5 ~9 ?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;}* ~, ?7 M) g# V3 d: s6 W
</SCRIPT>/ V  |% G$ T# C
<SCRIPT LANGUAGE="javascript">
8 d9 g) P* l% B( g- q& Q1 uDecode();
% l$ Z) W3 y; s& ^</SCRIPT>
1 {' z8 \3 m' M% [7 Q5 v; v</BODY>$ e7 o! D1 q& A( G9 v
</HTML>
  e0 ]/ N( T2 E  l: ?8 E1 f7 `) v6 y$ t
  哈哈!!:=)是不是很精彩!!

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