获得本站免费赞助空间请点这里
返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
" l, J" a9 ]! ?
8 |1 d8 P0 J& J/ N/ k( F' r( p! t8 ]9 G) H" t8 B
方法一:
5 ?9 }3 X! p- t4 Z' Q6 C" }8 g, g4 {
' B6 D8 H  \+ ?0 n+ H% Y3 Y9 T$ o/ b. }2 ^
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:0 q- |" m3 B. k' T: T1 `

. ]$ X) o& V6 W# B$ O0 n; f3 Y<HTML>
, p5 A" Q/ ~* [# A<SCRIPT LANGUAGE="javascript">; t. p( E( |/ x$ {3 Z% @
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"
! l% @+ F) P# O- o! vvar NewWords;  l! ^: V1 Y6 N6 A  Q1 Z8 w
NewWords = unescape(Words);2 ^$ z$ U, u1 P( Q3 g: f
document.write(NewWords)# Q: X# {: W- D( P2 r
</SCRIPT>
& E6 U# R, ?' [7 E5 }  O<BODY># b; I* G3 z# d( z; N* k: X
</BODY>
) e5 A' |$ l- Z% `1 p! q</HTML>! M/ p: k( f; m, Q+ O$ O# }" o/ M

) e2 Y. t, V' b' E% H  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:1 B3 E9 u' n- K0 x" R# X' k5 d

* N9 |0 h2 Z4 J2 D. R, _" w<HTML><SCRIPT LANGUAGE="javascript">
% H1 M" Z3 Y1 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"* V) {. a/ s8 l; o4 |% k& u  f. U
var NewWords;7 u# E$ @* j1 Y7 |
NewWords = unescape(Words);: U  ]% @8 `: k1 ~: Z+ }
NewWords=NewWords.toString();
, l; c# k9 y7 F; zfunction password(){
/ Z; i5 X' C5 U! p' o, Zdocument.pw.txtpw.value=NewWords;
- c/ z$ {5 Y2 F( q+ m7 `2 Z}
* u% I- u! D  S6 H1 i6 r, T</SCRIPT>7 d) I( N8 J! o, ]7 B% |. ^
<BODY>. ^7 Z8 p/ k( N# k
<form name=pw>
" o  U9 s. b9 S# B  T) r<input type=button onclick="password()" value="解密">" r" d  F& m* h; H7 ~: A! A
<br>, O9 e- U3 B! a) ]
<textarea name="txtpw" cols="100" rows="100"></textarea>
% |8 N) ], P) j3 `" Q/ I% A</form>4 e4 g2 {4 P. t& \7 Q
</BODY>
; L3 c6 \' R$ p5 \$ R3 n</HTML>
% k4 x' z( r" [4 n! u& l( s
# F2 a$ @( P; |: |/ Z: N方法二:
5 o3 ~  v' n! p& O
/ m9 e8 b9 a- @  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
7 H3 n. M, u& ~+ f; l* t+ p" j" e
% r; e6 S! X3 v* e' Z<html><head><script>
+ l+ y" i: r% D: H& P0 @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 ); }" w6 b+ ^4 U1 c7 w7 U- C& `
var sJsCmds ="" ++ [. S: S3 C9 X
"?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" +2 l7 A# K0 Y2 q4 Z- ~
"";
5 D! G, U+ r/ y( v( {var s= Carbosoft( sJsCmds);- `# \8 O0 `; @$ w! u- |) g* ?
document.write (s);
) Z( j7 }9 [2 ^+ _# ~: g</script>
, C5 [$ u; b! g% ~) k/ P/ ]</head><body></body></html>
7 J, P1 ?! q3 c+ a- n, S& D7 E5 v1 F$ Q: B8 o
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:+ c" ~  f+ f( x& m

! y( `! D' k  {/ d; Y2 f+ y3 d<script>
* C3 t$ u5 K% g6 w7 a- U( p3 y# cfunction 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 ); }- m: [/ L  e% N' q1 x" U
var sJsCmds ="" +
7 o- u, W- i# V0 E* b. P"?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" +9 `" g" N% W3 T& n0 r+ z4 @
"";* b7 w# V% s& G9 \( N$ r
var s= Carbosoft( sJsCmds);
* M5 M. l7 G' b8 [</script>
! Y3 @  V8 r7 L, Q# X3 \' ]; u! z<form name=qq>
- M( D" f. i( B9 {2 u/ ?4 w. g<textarea name=ww cols=100 rows=10></textarea>) L# B9 s3 L9 q9 S" b4 c9 ~- J* s& c' U
<input onclick='ww.value=s' type=button value="解密">* C5 c: ?' t0 o8 d" e4 w1 y
</form>
- o. ^6 I, d, R1 V0 S' Z' ?, Y- {/ o
  a1 m/ i) b3 b+ y, k+ z" F
方法三:
4 J: ?% Z+ U  @1 g
2 T' g5 L$ K0 ^: E! f  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:8 ?9 f3 g. v9 ~2 B0 o% \0 e

" ]- P: D/ ~8 H<HTML>& @% ?: O+ u' a- S0 _' c& r
<BODY>
; z5 Y+ p$ R# d! ]: u- I0 C! X! X<SCRIPT LANGUAGE="javascript">
6 c  _2 q' J+ t" s: T: U: Xfunction Decode() {
: S2 A8 N' o& d& H% @$ F  J  Ld("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;}
) n+ I- k* @4 ?) X: D  A</SCRIPT>% J8 y, f( O% k& B
<SCRIPT LANGUAGE="javascript"># N6 }, f+ J4 O. g- }5 i
function d (enc) {document.write(codeIt(key,enc));}* i: g/ B, D; q) q5 v
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;}) m6 O- c! |$ `% W  _2 Z: J5 n& z1 O
</SCRIPT>
0 I( C( i) m1 z- ]" t' u<SCRIPT LANGUAGE="javascript">4 o7 X" S5 x7 ?: e
Decode();
9 @7 |3 d0 W% z# U* e5 R% p; [</SCRIPT>
7 z/ q5 F  f: [' r* L2 u) u</BODY>3 Y' ^7 V) m7 e. D* V' l
</HTML>
% n* G5 {$ }' O5 h! ~- j8 X. F# N" b8 O) _' z! c
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
! r5 [2 X& r9 c% P. J- u9 K4 i, b! I/ Z: s3 [
<HTML>
- ?' A* f' j$ a  n' T: Z! i' h' V<BODY>' p* h# h) ?3 F1 X9 j: X
<SCRIPT LANGUAGE="javascript">* o7 L- L: c# \+ A0 p( h
function Decode() {; ^2 e. b. ~& v  f3 e
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;}
9 h+ m0 }  q9 ]) {9 l" m: a' z</SCRIPT>( k& ^# Q3 |7 G8 |* U
<SCRIPT LANGUAGE="javascript">
. Q5 S) M5 c  g6 y9 Y; u" L* `function d (enc) {alert(codeIt(key,enc));}; ]# t) Q7 [- N# o$ l5 E
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;}
2 m5 N9 U" Y7 ^</SCRIPT>' U7 `# q: u! ~/ b7 S* m4 f
<SCRIPT LANGUAGE="javascript">
- s0 c+ G9 _$ r* Z! c6 rDecode();0 A# k) e+ X$ G, M6 S' L, V& M! J' N3 `
</SCRIPT>  Y$ J3 Q9 |1 p: Z" J
</BODY>0 _" }1 i" G; G4 Q- D/ U0 U
</HTML>
; e8 J5 D7 z" p$ ]2 U9 Z* I3 a% \0 B. x4 p
  哈哈!!:=)是不是很精彩!!

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