返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
. `4 n' x# r* o# z# U
4 O, J( K$ d/ K9 }" ^$ J; k! j8 G6 u, a4 ~6 n) a, [; T0 G* R
方法一:
; f2 M- l% d% V7 z) Y& t1 q4 W( _9 J$ _6 k) n$ H
+ T) }" S: B8 ?& P+ H% r
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
6 u& p  U5 k" T( e
, c$ }+ G) G( k! q( [7 V$ Y<HTML>
- r4 H# S- N$ o7 [<SCRIPT LANGUAGE="javascript">& M/ C, L, L4 o9 `1 T, _5 \
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"1 f# L& @4 K! @" P$ G5 C( \3 ^5 k  M
var NewWords;. ^9 s) X5 U) F( L# H* c; d0 C
NewWords = unescape(Words);" E. J; g+ ~* E* W' \  U' ~* y
document.write(NewWords)0 K% I9 G. X" U" P% m3 h3 n
</SCRIPT>
* V) T/ b9 p+ y/ x<BODY>
' O/ N% f1 p  P8 V0 @</BODY>  V% V0 w# f- D% d, S' f# P! a
</HTML>
0 C: |: Y5 X2 b0 R# K% Y
8 |' e3 H5 h8 `5 F4 w9 @! h0 f8 q+ G  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
2 g% d) I' @3 W- M
; ?0 T- Y" ?: P! F3 T2 n& x<HTML><SCRIPT LANGUAGE="javascript">
2 b: e5 H) q/ R; u& ]3 B# n$ 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"
" e% t/ I1 `+ b: o8 @var NewWords;0 a$ Z7 ^( h! V. E
NewWords = unescape(Words);& b( }1 P" V# ~# v4 c" _
NewWords=NewWords.toString();
$ @! @) d! A. o# T7 A' w  Rfunction password(){- @* b% U7 s4 \5 o4 u
document.pw.txtpw.value=NewWords;7 Y) q: e, |* R
}& P, n! O( j' f. ^9 g, f
</SCRIPT>
1 v2 [5 |2 |8 T" u3 P1 S4 Y$ T* \<BODY>+ H; n. c+ A# d/ J, U# \& o1 @; d
<form name=pw>
2 P! p( g9 P0 J' n; G<input type=button onclick="password()" value="解密">& y3 z8 y6 }6 J9 Y& u
<br>
" \! u# T2 V; P) ~: d<textarea name="txtpw" cols="100" rows="100"></textarea>/ k& e; X1 Z8 J" g' {6 ^8 o
</form>; A8 u; c8 a8 Z  C
</BODY>
5 W4 b; \' [% \" `9 O* r/ [</HTML>
; i# x$ `" {+ J$ [: Q/ `& B% P* |$ o5 m
方法二:1 W& k' v* R; s) ?9 r0 V$ R

- o, D! c) [: A# }% p8 `# y  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:* f4 _) }) `$ U

+ m  |) l7 e9 c# U; n+ e<html><head><script>
) N# x/ h( @0 ^) |+ l/ i. i6 Wfunction 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) E; L8 @1 ]2 ~
var sJsCmds ="" +/ H) P2 j2 D$ q9 q2 `% V2 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" +0 b- s' F4 r; z6 P) Z  u9 y
"";& y9 b5 o# S, f
var s= Carbosoft( sJsCmds);  _8 H1 o6 W4 P+ @: @2 w
document.write (s);
% ]' F$ q: ~9 b( t* K</script>* p0 g# E& n9 l2 V$ I
</head><body></body></html>4 k1 K- V3 ]. c; b* |
* Q4 S% ~; U8 j
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:* H6 ?7 K& d, q" Y: S

! G! S) _  P1 S# q# a2 L$ x7 X<script>/ [# f% N0 D  M  l3 y2 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 ); }; T8 H" h4 o! `8 V3 `( u( k/ V
var sJsCmds ="" +
- _/ t1 ^) ^6 I% |; @"?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" +
+ ]& ]; W0 r  e$ L$ ^, y"";! W+ M0 C/ Z( s8 H
var s= Carbosoft( sJsCmds);3 {7 c% b5 k3 v. p1 r- y0 m1 B
</script>
8 h  R  J) R+ z. @5 {" o6 o<form name=qq>
3 o# Q# N5 \/ K9 A<textarea name=ww cols=100 rows=10></textarea>' Q' x- O: d0 a, ?" {
<input onclick='ww.value=s' type=button value="解密">* {7 P% b& g! q- s! E1 ?& X
</form>
* @: K% {2 E& S5 V- ?- I5 {. y% h2 o7 U: n3 X, ?, G6 `
+ q8 c; B& c2 l9 Z) `. p: f3 \
方法三:
" f5 W3 O3 a. Y+ `( W4 J7 z
1 L# [( M% F3 q" \6 }% ~( I5 v1 c  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:( I$ w5 k. y! w; U  D/ J( E$ L
* _% V$ M; x# o
<HTML>
* O! N6 C/ F5 a: d<BODY>4 g! O) r8 B! _: G4 @; x+ j$ [
<SCRIPT LANGUAGE="javascript">2 Y+ t, G$ w# q) P* x) x4 _) W
function Decode() {
5 D2 i. W. b1 [  _: `2 _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;}
' ~' u3 i) b, P</SCRIPT>
6 i1 q, Q8 |: \<SCRIPT LANGUAGE="javascript">& M1 r' U# F$ b
function d (enc) {document.write(codeIt(key,enc));}! ?! e" @% E0 u
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;}
: x% x  @. p; J, |</SCRIPT>7 n6 r9 b% L1 I
<SCRIPT LANGUAGE="javascript">/ }0 A8 W6 d% g; C
Decode();
$ n1 T. i0 d5 M* Q</SCRIPT>8 M, N# N9 m2 W) O
</BODY>
% v9 [/ L4 g4 h  d" B" k( v</HTML>. l  C' f3 H# W- A5 M  [

" Q$ w' A/ {4 j. K  o& O  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:3 m  W& e! k. ]! `  \7 O+ u

3 d: F, Y9 Y; _2 e<HTML>- y9 i1 i! W: x" D  O& @: n' A+ U' H
<BODY>- L: q  h1 Y* p1 [# {. t
<SCRIPT LANGUAGE="javascript">
$ K8 [0 H$ G5 Q3 t$ a/ H! qfunction Decode() {* d+ V7 S% ?4 E1 N
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;}0 O" M2 j5 P3 G# k
</SCRIPT>" I4 S; s9 m+ G! S+ @- u) v5 [
<SCRIPT LANGUAGE="javascript">+ l( j3 \7 \- A2 C. p+ }
function d (enc) {alert(codeIt(key,enc));}
( |& ?* g/ \, m2 y/ X; f$ W9 Ivar 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;}
# G2 R. d6 [- q# h/ I: ]</SCRIPT>" S4 |- d  C2 y- K
<SCRIPT LANGUAGE="javascript">  y5 r  s8 k4 C
Decode();
4 B1 {1 l) \6 }4 M+ l* o</SCRIPT>, L( W3 }9 S( N2 ~
</BODY>
( s7 _1 e4 J  G& z  D2 Q</HTML>% A! K$ _/ w$ V4 N8 c
: t+ ]2 q2 ^8 I) W: E
  哈哈!!:=)是不是很精彩!!

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