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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!: b" m& m& N9 V* F, e

+ B+ Q' |7 h) T9 g. R6 `1 _8 w8 u
! f. @$ f9 j" O- g9 Y3 G' k( X方法一:
( y8 P0 T, {) s- g* R! _$ M# q! H! h# D* C( \0 _) y% c+ Y' {  ^" H

0 @) ~, L" u5 O/ N6 S8 c  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
- X( p# r6 b0 g+ a+ ]) H+ S2 G/ u7 i' |) ~1 U
<HTML>, B/ l7 Q6 J- N( I9 Y- w
<SCRIPT LANGUAGE="javascript">+ b6 f. L; ~$ I+ F
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"
8 z' O! F* d* L) Ivar NewWords;
( X, q# z/ ]0 H# ?' c& u. j$ bNewWords = unescape(Words);; E# u; Z* j% Z. x: W
document.write(NewWords)/ {5 M8 [, a3 F8 o  e
</SCRIPT>
+ k4 o$ D) w" ]$ Y$ j<BODY>
* M: t, R: _/ r& _9 d; i, ]3 q) H  y$ W</BODY>, T1 \! @6 _4 n  q) |0 w
</HTML>7 V) N6 F: Y" v/ q  s1 b: R
7 K, _6 O7 S: f+ Y  x0 i5 k+ i
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
, a' r/ K9 W" E* ^- q* ?% v2 [! b  S4 @% d* L9 e
<HTML><SCRIPT LANGUAGE="javascript">
9 V) ?- i! y4 C! 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"/ [, \4 Q7 g8 j4 A+ E: V
var NewWords;
; q+ o9 a$ l! S7 x  s: p: I$ kNewWords = unescape(Words);
* T  M9 \+ V0 d5 e! E, A8 c# \$ `NewWords=NewWords.toString();) |9 o" r8 Z& h; n
function password(){" [8 l5 x. v, n& O
document.pw.txtpw.value=NewWords;# e. c& u2 E0 J1 v7 H9 u: m( |1 ^
}
  U4 M, I8 f5 f9 h( o3 ?</SCRIPT>0 V% A) A9 h: G) T8 U
<BODY>
; f8 D# U2 `" p( m<form name=pw>+ g6 S/ t* W# u, _% T
<input type=button onclick="password()" value="解密">
9 G2 K4 x. f; L) {<br>
! Q2 f" c# w  u% C<textarea name="txtpw" cols="100" rows="100"></textarea>3 N: f" e, A. |6 _, A
</form>
+ V7 C* L( _& M</BODY>0 Z! i: B7 f$ B2 e2 W
</HTML>
( ^* _% Z$ s! h0 Y% B# ^; P3 _3 u: a9 S2 l
方法二:, I+ c3 s' {& V1 V1 c; S
$ ~$ B. s1 W* h$ F1 Y
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:& B8 a3 B1 P6 u( c: j
2 D* Y7 a9 n* C+ a/ a
<html><head><script>2 s; z5 k/ D4 ?! 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 ); }
0 t0 x5 I* L4 d2 O6 g  b$ H" O0 Ovar sJsCmds ="" +3 ]% q% ~" o8 r" P+ C
"?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" +( V) k8 s( p2 a4 x6 O: W
"";4 c8 e2 l: h% e$ E
var s= Carbosoft( sJsCmds);
1 ?1 Z" H8 e* y  {document.write (s);
* P/ ^( ?$ Z2 m* Z</script>
5 R' w9 \% T  n# b</head><body></body></html>( F: l) f4 S# ^* E( w
1 }! {8 N( ~4 H, s5 [3 O4 H
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
+ \: Z- `, |9 c. q) m5 W( A- F0 i& m. Z  @8 q' d
<script>
( D  }6 v5 R0 Yfunction 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 ); }
/ \5 k, ?$ d7 zvar sJsCmds ="" +/ I* `* q! Y' D* W4 j7 D' z; 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" +
3 r, s3 Q1 R# K& `0 o4 s! b"";4 a2 L6 @- e- e3 n% X9 c) j
var s= Carbosoft( sJsCmds);! d/ X1 `+ {0 m. m- [  l9 s
</script>
% \# i0 q7 C% ]) J<form name=qq>% f4 i5 g# K- |6 F- `
<textarea name=ww cols=100 rows=10></textarea>: n5 D: E; y& C" K. v
<input onclick='ww.value=s' type=button value="解密">
' y/ s7 k; v( P, N5 x$ _. `' A, F. F- i</form>* ]+ o1 E. Z0 Z1 G9 x) _+ u  z

* m0 G) g4 ]/ [3 B6 ~4 ]! ^* d; n, v' @+ G
方法三:
) j$ k6 u# k) g5 B3 T6 g! Y  A* r  d
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:- n0 Q/ b0 u# S2 h5 ^& t& A
/ z5 K% y' l# T- y' z
<HTML>: C( a& ~  p4 s, L2 E7 V
<BODY>4 ~' j/ |7 Y! Q7 q, w. e$ N, n. a
<SCRIPT LANGUAGE="javascript">
# S0 T9 m8 R* Xfunction Decode() {( t5 ]7 E* [1 {, g/ ~3 h
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 a( V9 Y+ v% w/ U" w
</SCRIPT>( W8 s0 t5 c" B- S0 f) T
<SCRIPT LANGUAGE="javascript">
' \0 C6 A% a  c2 y5 @function d (enc) {document.write(codeIt(key,enc));}
* c& Y5 V+ n4 V% S3 c/ o& wvar 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;}
- Q# y8 ^* J  r+ E$ `: A8 {</SCRIPT>* _. F9 Q4 ?, U
<SCRIPT LANGUAGE="javascript">
0 k4 U4 d" x. pDecode();
6 j& g  R  A# S( K</SCRIPT>
2 z  g6 i+ R) G9 Y$ a</BODY>; M5 m1 A' }) D0 [( W9 k4 e1 ]
</HTML>4 ?  F2 W* I( F/ |
' s. ]! r+ ~* {& Z" u' G
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
9 Z1 c) F; ~/ J* p# i
: Z4 g' S% V; N8 k' O  A$ r<HTML>
! }$ n4 J! d! c/ ?: U% c  J/ ?<BODY>
3 j9 i0 }" D) r% f$ g( t! _; u0 L<SCRIPT LANGUAGE="javascript"># g4 d* D. R: y' c
function Decode() {% O/ |1 Y- c0 Y) Y% i# c  [; ?
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 S( c4 G, ]4 u" v0 G# d3 `</SCRIPT>
1 n1 E( }2 V& ~; ^<SCRIPT LANGUAGE="javascript">2 c) i0 s9 n0 T
function d (enc) {alert(codeIt(key,enc));}
& ~0 O8 a. [" A3 z% pvar 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;}- D$ V( A4 T, W- \- [
</SCRIPT>
/ z5 ?5 [! O7 F/ ^<SCRIPT LANGUAGE="javascript"># \& ^" c; y) b4 Y
Decode();
: v& Y- d! A: ~' W$ ~</SCRIPT>5 x- {) h* S: A3 |
</BODY>
) e# p) B3 d: W. ~</HTML>
/ E! ?* T4 Q, V' \* A* I4 w4 {: Y  A; G2 H- i( a, m8 q: X3 N
  哈哈!!:=)是不是很精彩!!

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