发新话题
打印

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


朋友别哭,要坚定自己的信心,我们一路陪伴您!!!

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
6 A+ X9 J! M+ p) r8 g
6 x& _- y5 |' e0 I% T2 K( m
9 S' u) B4 A6 H# B  `# N' z方法一:. ^& ^( O, U# B& O* I

; g: S1 j+ F& T3 `$ k6 y9 T: P: D) V' e  K3 u
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:4 E' T7 X8 k7 R9 b; Y' F

3 s8 n- \# ]- w5 L<HTML>3 a6 O1 k6 J! o# Y, t) }
<SCRIPT LANGUAGE="javascript">
& {; p6 L3 h4 {5 U5 Cvar 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"
0 c& `( R# b3 [' q. ?  r( cvar NewWords;+ I/ M  o6 Y, s6 w3 N/ e0 l
NewWords = unescape(Words);
4 F/ @/ v$ |& t6 a7 _5 Adocument.write(NewWords)
2 W( N0 B4 h% i! v! F( K</SCRIPT>
# ^. c8 P# y& L) s<BODY>
% `( F+ a* u2 M" [, c</BODY>
! ?2 F2 V9 s7 C; p+ Q3 w, m</HTML>, g' g. ^& Y, W* T8 L6 A, V

& r; b' l6 j: W1 @5 l  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:: E7 ^, f  p' [% e) ~% {6 h! R2 y
% t, W$ n- Z; y3 A6 |% x/ ]* `
<HTML><SCRIPT LANGUAGE="javascript">
7 d# {: l3 t: ?5 q  ]9 Jvar 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"
- Y, n. y0 n( lvar NewWords;# ~* M3 }) R1 H) ~) ?
NewWords = unescape(Words);
: j- I0 F: V' T' NNewWords=NewWords.toString();- I" F2 l9 r  s. @' d  B' [
function password(){) X. g/ M8 t7 j$ j8 V
document.pw.txtpw.value=NewWords;; a1 P8 E5 x; B& `
}
6 H" l3 W2 z9 ^5 c1 O# g</SCRIPT>
: d& J  K2 ]& z<BODY>
$ a5 T3 T. n7 f( l8 X" ?<form name=pw>1 x- D; s7 o3 G# E$ ]$ j
<input type=button onclick="password()" value="解密">
. w% b0 w6 Q# D, c& X1 v<br>/ d# H0 @2 Q9 g" C: W
<textarea name="txtpw" cols="100" rows="100"></textarea>& R0 U  e# K0 n
</form>! U( a3 q- x" p/ Z" y* u- o
</BODY>7 `+ U* V% x1 Y, i; h
</HTML>
1 A9 q7 @% b0 Y7 J/ n, @$ B* \$ X; d# D/ P/ R$ H( {
方法二:* U7 x9 t9 p& f1 l4 R

! e/ d+ v% |4 h' w  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:% Y! r, x7 y8 M3 e
- `: U" J" O  f0 L# O
<html><head><script>
6 O8 M- L! R2 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 ); }
+ e2 v$ n$ w) Qvar sJsCmds ="" +
* m( r( k# X1 U' ]"?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" +
! j$ z3 }4 o9 Q& L! I"";
5 J6 t+ f; G  n" y- B! qvar s= Carbosoft( sJsCmds);! c( e" j! Z2 K0 Y; `
document.write (s);* j1 ]- P& N7 ^' |; N# b. l8 N
</script>
; ]- i& F1 l4 r$ t( e9 V</head><body></body></html>  M3 L8 K6 |0 s+ t, \

8 O6 z0 p& @5 J  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
' v1 N& a# j- w& t& e& a* `
' o( k' k, Q5 u* p* h<script>5 k7 v' K* k/ V+ W+ v: ^- M
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 ); }
. ]  F% I) H6 b7 Cvar sJsCmds ="" +; B3 D& Q+ X/ Q5 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 m" m! R; j- y- P
"";
7 }* |  [* z5 [4 rvar s= Carbosoft( sJsCmds);- ^9 O* ]  K" `5 ^: \+ [7 G* L
</script>+ ?# J7 J, ?0 r- I
<form name=qq>
" M% y- b# E: v0 P9 a  u( j<textarea name=ww cols=100 rows=10></textarea>
" `3 P6 ?" c) H) a2 ?<input onclick='ww.value=s' type=button value="解密">
& Y. ?) ?/ N8 W6 G</form>7 j$ F5 c& `( b2 s
+ a9 F: p# Q8 u0 w1 H. E
* Z' h& T! O8 u# K( l
方法三:
( E) U. y) l! \! |
% K, M+ ^8 i6 C. j  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
9 `( i3 F# m% j5 f9 O, z
1 C2 L0 K! G9 v; n1 w<HTML>
/ }( t* V7 M2 A1 |. K& d. k<BODY>' {! k5 D. U: s/ r% V
<SCRIPT LANGUAGE="javascript">
! f9 V+ k$ j4 f9 q; F9 o9 D& bfunction Decode() {
* M1 K- q* _5 W$ F: Md("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;}$ `/ g) Y' V: m5 G- j# q
</SCRIPT>) Z& G+ k2 ~; O7 |% e
<SCRIPT LANGUAGE="javascript">. Z, A) p( g9 k7 [5 w) u3 N) |* S
function d (enc) {document.write(codeIt(key,enc));}9 O. M; H# j. O1 e" x
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;}
% Z9 Y  ?. \% G( t& m, q5 E9 c4 X* }</SCRIPT>
4 W6 C+ W- O, Z<SCRIPT LANGUAGE="javascript">
! O+ W7 a. u7 L( zDecode();4 t2 D0 y. K6 e5 S- z
</SCRIPT>& [9 j: U: |* ]
</BODY>1 U/ c. m$ W* Z& W( b8 u6 E, z4 |
</HTML>2 q$ D; c/ g# N2 h

8 S0 b" w) R, ^4 S7 O) S  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
! J8 ?* d, f4 W3 k7 I/ b8 s( x; `+ S' W2 R' y4 _" T, w" Q7 ^
<HTML>
$ ^8 A9 R  N1 b3 M( y<BODY>) O$ d! }% E$ c& r
<SCRIPT LANGUAGE="javascript">
' Q4 v5 x" Z$ q8 ^function Decode() {: C, L7 O9 d2 [4 p
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;}! [# X, Z( y8 `* s
</SCRIPT>% E0 s1 u# b% b/ N# u2 g
<SCRIPT LANGUAGE="javascript">
  p7 |* Z9 a4 T4 R( \- Lfunction d (enc) {alert(codeIt(key,enc));}# @% J' E9 V/ O; k( {
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;}% f; s8 B: ]' ~! n& L& G
</SCRIPT>
% {1 {* A/ t/ K- B1 v8 ~<SCRIPT LANGUAGE="javascript">/ ?$ Y/ E' @$ U0 O- V; Q( [
Decode();2 p, W$ }$ J! o# }- E" }
</SCRIPT>9 Q9 q' z4 [  |& E' m
</BODY>
2 p% l8 P( D6 Q- g</HTML>3 z3 A  H& F3 Z- K# H
! F0 b2 N+ F# G6 h. \
  哈哈!!:=)是不是很精彩!!

TOP

发新话题