返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
  I& ?9 B' ^% ~8 D
! P, O+ U% B- O" d1 A; I4 Y( @- }6 p- s. `1 K2 B7 ]9 x0 m
方法一:
, i* b& [8 n" u7 y6 D  s( d
) J1 E& r1 L" z+ e( K* s( u/ c1 a- ~# i' p! l* d/ E5 R( I1 n; a
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
' ^! [" _# k7 x! Z% ^$ a$ w. `
. O# s2 }6 i/ T1 w<HTML>, N5 I0 c3 X& b7 b
<SCRIPT LANGUAGE="javascript">
; }, L3 B" i- f; mvar 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": ~! H& L# X5 s
var NewWords;
2 D0 u0 ^+ ]- \% @4 Q1 j8 n- ^! K" T- Y+ aNewWords = unescape(Words);' F: o, }: X  ]' e- W1 J
document.write(NewWords). \& U+ T; s, M- O7 u) D3 k, [
</SCRIPT>8 u% {; q! A0 m& Q- O) R
<BODY>
7 \- p( d4 q0 R1 {</BODY>
9 a, A6 B  A. o</HTML>) _/ G+ _2 o, [1 V) n, [, z' r; o
5 ?0 y8 Q1 r& R! S2 G
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
! S" C1 i& ^  s2 h; n! `5 {1 N9 i7 \: ]  d* z' m2 B/ f9 Q
<HTML><SCRIPT LANGUAGE="javascript">6 m( A  _; j7 @: j5 ^+ p1 k
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"
; O' J- ^9 g# V( N( i. ?var NewWords;! c; a! b1 H! s4 ^: m
NewWords = unescape(Words);2 k" I/ M- t+ N: P4 E% {
NewWords=NewWords.toString();
' L3 S# D. f: A( Hfunction password(){
! k+ z, A2 P) ?- |: qdocument.pw.txtpw.value=NewWords;( a2 F7 ?8 M6 s9 B; @
}
/ P7 q# h# j1 |$ g& v9 ?: a* A</SCRIPT>& u. |: e6 \8 X/ e- L, q, m7 E, n
<BODY>
3 D. x3 I; F7 I; w# T9 u/ o4 B<form name=pw>5 I: T. M$ c# t+ s& @% n1 \
<input type=button onclick="password()" value="解密">
* G- G0 K: O- z2 j% {" O<br>, Y* [# ~+ X3 k+ w' N; T) P
<textarea name="txtpw" cols="100" rows="100"></textarea>
. K& w2 c6 y6 Z+ ^# X3 m</form>8 I, W* d; O4 o4 D8 k/ F
</BODY>& t( t1 W) t  ~: |- u( e4 W3 _3 Z9 U
</HTML>
5 R! x/ U0 G8 p: v( n2 t# n0 E2 P
# a4 R1 J; v3 J方法二:4 n9 q% F8 C4 |6 k3 T
7 ~: O7 x$ Q6 K9 x- G0 j  _; z" n
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:- Q9 A% b6 t5 W9 X  C5 E

2 O3 ^. y, t1 n7 A& X1 M- T<html><head><script>
2 o0 G; n1 ?) Ofunction 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 g" J* K! C% o" {
var sJsCmds ="" +
; u- w; Z, V. A( R  U! h"?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" +
4 l, [3 E+ T' J8 g7 w) |0 _"";
# h: w6 f  ^- b2 e, q* f, svar s= Carbosoft( sJsCmds);( Y% E+ R, e, ?3 E% y
document.write (s);
' l( T" w" P2 E" |: `- c/ F$ i</script>, X/ ]0 S: _2 D/ x1 G
</head><body></body></html>
: f4 w. n0 Y* F6 k$ p3 A# `5 t
: s( c; ~7 K! x7 {  y3 d& \  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:# h) w( ~4 n. P
: s7 l6 s4 V# a& W/ L5 K
<script>
$ M% b8 y! k. nfunction 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 ); }8 d* C( q* Y7 m; i! m. P8 t
var sJsCmds ="" +
4 M2 l3 Q7 \  a5 z"?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" +. Q+ ?& h/ s; W: l# h3 ]
"";% o$ p0 c2 J6 v' c9 l5 a
var s= Carbosoft( sJsCmds);2 P  D/ u% R7 L# z* e6 Q
</script>
$ E# C1 l) J+ Y9 D<form name=qq>7 C# q! T+ i2 ]+ s: |4 S6 `' L/ H
<textarea name=ww cols=100 rows=10></textarea>
7 l" _! f& n0 x0 j0 g5 u3 G- |<input onclick='ww.value=s' type=button value="解密">' @) ?2 S7 [) l" r* p4 ^7 l& w
</form>
+ c" N, ~" U1 x2 i9 V
/ g' y9 ^7 `8 L8 G4 \' B5 b  V
6 Y; m0 G* W; A* C0 ~: Q方法三:# ~) g5 C5 N( [- {& g# x

; w& `; y) I8 \! f: W  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
) c$ }& ^1 q+ {0 j( O+ Y
# W: o8 N. O3 B' A! ~+ z<HTML>
/ W8 ?- ]2 G0 C! Y) J<BODY>; T. s0 V( A3 Y6 n% y( B
<SCRIPT LANGUAGE="javascript">8 o) X  G" ^$ o6 i
function Decode() {
/ f( Q' ?- I( Q. Z& bd("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;}
! f  s: w3 {, x) I</SCRIPT>1 e1 |8 l* C8 m3 K# _
<SCRIPT LANGUAGE="javascript">% w8 u) ^5 P- R2 ?7 x
function d (enc) {document.write(codeIt(key,enc));}* S: z4 H  b6 D' e) s* y
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;}8 B  O; [, N1 s
</SCRIPT>
( J$ I7 v$ z8 q9 Y  L- k4 ?<SCRIPT LANGUAGE="javascript">3 q5 e- j! i5 i
Decode();
: Z6 m3 U' B) C. t& ^</SCRIPT>; Z( T* a% R- k( p2 O! l
</BODY>0 ]  w6 m& b( R$ a% U4 ?  t
</HTML>
  q! C! D! j5 o. @9 h+ H
$ t* ]6 L' E: t3 D  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
. i2 A) S1 ?' O* K  }4 Y1 u9 a' p; x: [% [
<HTML>
9 Y- V; L% U7 ^<BODY>
  O% h/ I9 w" O! V- R<SCRIPT LANGUAGE="javascript">
9 j( G* P# @, Xfunction Decode() {
4 x/ B: \0 u; O1 W8 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;}  i, I- c. h& X
</SCRIPT>
. i& K! M0 v8 s2 H8 ?" X<SCRIPT LANGUAGE="javascript">' v1 N" u$ x  @+ B3 e
function d (enc) {alert(codeIt(key,enc));}) f! V6 u- s9 y9 F0 |# W1 [
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;}
/ e* U; G, W; z# G</SCRIPT>
9 R3 c' O# m8 T( L# b0 Z$ \9 f<SCRIPT LANGUAGE="javascript">) u0 a  e# q7 x: ^* U- g) |+ }3 Z
Decode();  p2 P6 |" W4 V+ D2 X* ]
</SCRIPT>9 r% ?7 b6 j& A" I$ U
</BODY>1 E, h, K* }5 Z+ ]4 K) z
</HTML>! v8 Z0 V3 q* x! Y. v0 M

" n+ @9 C9 c: G8 e  哈哈!!:=)是不是很精彩!!

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