返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!2 C, w3 K2 o5 |; r" P: L( J

( z, `- t; e! u: y' C! `! Y" m* H" K( T6 P9 s' e
方法一:
% L" R, {( I$ |& z2 J, [0 A/ u& n: z0 x! b, `/ K/ Y

6 \6 s2 n% }: \9 ]  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
- |" S- q) n9 }% f6 ^/ h) T
6 E/ U, S- s4 b4 K<HTML>
( O% p1 t4 M1 d5 o, m<SCRIPT LANGUAGE="javascript">
, i. v8 j" A! S" P: Pvar 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"5 a7 z+ c9 a% f* Z* c( g( p
var NewWords;* V7 N- v7 U! h! u( l0 q
NewWords = unescape(Words);0 r* i, m& e, Q7 F, [9 p( L! N
document.write(NewWords): P& k2 W$ D3 V$ u  P
</SCRIPT>
. n& e" K4 t9 Y% R( t; F<BODY>
( }3 ]) [9 S+ I: t' r$ W</BODY>0 k# O7 _7 }8 c' h; R( c$ D
</HTML>
! U( [1 J" q& F/ R% f5 N5 w
4 g; O$ l# j& M) K; K- X7 K/ l2 u  q  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:; Y( ]6 u3 H5 W( n
; Y) j+ C. q) A, f# F5 p( H% x8 p
<HTML><SCRIPT LANGUAGE="javascript">3 T8 ?( ~. u2 Z. v% n
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"4 R& m( ~; Q# X1 ]& f5 l- ^; \8 Y: u" E
var NewWords;
1 D9 H5 w6 m0 nNewWords = unescape(Words);
# ]9 _. f$ E+ e, T& H2 LNewWords=NewWords.toString();. I; o7 U! L4 S5 G
function password(){
, h8 g2 z. w+ i% h3 J; Ndocument.pw.txtpw.value=NewWords;# G9 T) x  I* _' E' ]
}
9 W6 C6 k! {- y) Y" Q; z; H</SCRIPT>4 B% |0 E9 ^9 \8 P* Y2 D! b
<BODY>1 y  M' s: l3 k; b) N
<form name=pw>
, I6 [+ a' x5 W* o, r<input type=button onclick="password()" value="解密">
6 m9 s6 {! ?) {3 \/ [. m0 R, o<br>
2 J# |8 ~& K# ^0 B4 ]" B6 w<textarea name="txtpw" cols="100" rows="100"></textarea>/ }( n: K) h% I" x8 S& H) `
</form>5 o+ X5 E! L$ O2 r
</BODY>
/ D+ W& Y4 F9 W+ K# x</HTML>" p* b' B  F* S6 a
0 ^; z% v  d5 i, z0 b  V/ Y
方法二:! A/ c0 k) `6 c! S3 E" t1 f
  [  U2 Q! I* h- I5 z
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
, G! ]8 W  Y. u+ |1 t' r  p$ a) I4 Z1 M
<html><head><script>2 `! T4 M# M, B( [& D$ 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 ); }
3 d' E1 }) O) s3 G/ Uvar sJsCmds ="" +) ]' N- _% P; G+ U% f
"?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" +3 ^4 |2 _4 p; P# r( k
"";
8 O, h, K( b1 Y. G3 G' Mvar s= Carbosoft( sJsCmds);
: P% N4 \, }/ vdocument.write (s);
' t8 q1 M, q5 L: W# P+ B</script>
3 s  o) h( f; G, p</head><body></body></html>
( k0 P9 a) r0 m/ A0 i( |2 I! r& U0 H/ P5 I
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
" Z) x0 ~5 @8 B( C. P" ?4 Z9 ^5 T5 i4 X
<script>
! q0 C. g0 ]+ {: w7 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 ); }
: W$ l* w' a; {6 h) |1 r* ]var sJsCmds ="" +. t8 n1 f7 s( e" @2 W+ L7 u3 M* M# T
"?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" +
5 H# r! Y" `: ?) _"";) L: [. Q1 m1 I
var s= Carbosoft( sJsCmds);
+ Y) y# t" Y; x% N8 P5 \, |( t</script>
" D4 w+ `2 i1 d; J) R' b<form name=qq>( q( F- @. X& v( s7 s
<textarea name=ww cols=100 rows=10></textarea>+ s5 `, j1 M- ]+ l, L9 }! {
<input onclick='ww.value=s' type=button value="解密">
9 n: ?! S2 R! U</form>
* M! z3 x8 {! r+ d" q! b( B$ K+ i& G6 B* l, d2 c
3 U' q5 C. s) k& m3 T2 Z  R3 y* Y
方法三:
4 U# W( K$ F. H7 Y
9 F8 ?6 r* j* w7 K% v/ E6 L6 t  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:* w, t5 O1 c! f7 U

& A3 n# w( U% _+ Q9 ?<HTML>& \: z% e4 @' b! W& v# c6 ^( m- s# R
<BODY>
6 v( y. \- l" a+ n- c<SCRIPT LANGUAGE="javascript">
" Y8 v* C9 q. ^3 I  Z9 @function Decode() {7 ]) Q2 Y9 n, }: G
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;}
% s5 u+ G' q4 D% ?</SCRIPT>
6 y1 g3 E* d) P: o1 G) |<SCRIPT LANGUAGE="javascript">
- Y4 x, [1 b' m) q4 {function d (enc) {document.write(codeIt(key,enc));}
3 w9 B) P; q( a0 a1 gvar 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;}
# |" z% d/ T9 ]9 X+ ~7 d6 ]</SCRIPT>% Z$ Y7 ?7 z$ x3 E) e6 ?& Y, s  }
<SCRIPT LANGUAGE="javascript">
' c6 `: W7 {# A2 O0 j& `Decode();
  ]# H. ?9 ^' ~% r2 \3 w2 m</SCRIPT>. \3 h3 A: C1 E, r) L
</BODY>
, r4 U0 b$ O" `/ P3 p</HTML>+ |+ o' H; s+ `+ P+ @  H0 W
" K6 {6 y3 V( [5 R. A
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:( T+ S/ y8 _. c
  D" n' d6 ?) A5 q* I0 [$ R" P
<HTML>
# E6 D2 g  j+ o3 L. E, e# c. p<BODY>
& j" t2 {; {5 `$ J! D- R7 p<SCRIPT LANGUAGE="javascript">
8 K& |8 a7 f6 N) d9 s2 r: tfunction Decode() {0 P6 X  C: ?) t
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;}# z- ]4 w/ n5 C3 ~$ C
</SCRIPT>6 P0 i1 \1 W/ f$ H. Q3 [  U
<SCRIPT LANGUAGE="javascript">9 `: J: L3 w+ {: d
function d (enc) {alert(codeIt(key,enc));}
! ]: o  O0 D- _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;}
% Y% S! Z& m( w+ d! h</SCRIPT>
, P" T3 A8 h$ Z7 H* _<SCRIPT LANGUAGE="javascript">1 o) s. A/ ]0 W! e8 B& R2 [
Decode();
; \/ b7 L3 h* V, n% p# u. [) n  E</SCRIPT>! d: c/ z* F& e# {! K* O
</BODY>
' V7 f0 c2 _* P</HTML>$ |6 I$ k, X9 {1 w3 k
3 s; q) N& Z0 L! |/ T
  哈哈!!:=)是不是很精彩!!

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