标题:
网页制作中页面的加密和破解
[打印本页]
作者:
admin
时间:
2008-1-19 23:24
标题:
网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
! A$ P2 F- {0 [* L
, ]3 i1 L% h$ d, f: Z
0 C/ ~" O, a& e3 c
方法一:
( n% M$ h! [% V5 m: N' `
6 F$ |$ u* ~9 C
7 D7 h8 {3 O( T% D
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
) d$ P0 \1 f; g! C
/ I% S+ p5 y: P" B. D! W$ j
<HTML>
' b: I: W$ h) K9 ?) S; o) k
<SCRIPT LANGUAGE="javascript">
: X$ }/ |3 C0 t0 N. P/ e
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"
& _1 I3 z2 _! @6 |: B
var NewWords;
- \! x) I6 i5 Q/ ~; r, ~$ W+ R/ S, K
NewWords = unescape(Words);
# @+ N# z1 q- \) s s; ^$ s
document.write(NewWords)
; T. s3 r1 t1 V+ q# f/ w
</SCRIPT>
' I# N* P; z) T$ q( h
<BODY>
# G' k( ?: x. Z, [6 T( B) n
</BODY>
! @9 B' @; N4 k( ~
</HTML>
" P9 x0 ^' S& R( _0 @ p) c
' r8 b, j( `$ r* a/ @1 y s1 t
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
4 p& X& ?) p( ^+ m
% G! K3 Z( D1 Z+ @6 B2 L3 K
<HTML><SCRIPT LANGUAGE="javascript">
: ^( C$ S* p- F% }4 u
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"
; T9 {2 X8 U) ~% p' b Z
var NewWords;
6 Q% r$ L' A/ _8 v
NewWords = unescape(Words);
# N( }. c& ~4 O4 ^/ x2 G- D8 i" i+ U
NewWords=NewWords.toString();
( E. U$ r6 f B' z( a3 v0 }$ @
function password(){
4 ] e0 @' v: v( F
document.pw.txtpw.value=NewWords;
C" x6 d* s. G: @
}
+ o. M. ]5 z" D" \ {/ ^
</SCRIPT>
& L" \( Y0 ^. l3 k
<BODY>
5 l" `7 X" V# t/ C' h2 y
<form name=pw>
3 Z0 ^* k9 ^: a g
<input type=button onclick="password()" value="解密">
% D; j5 K! g% q+ {
<br>
9 B$ K5 t0 j1 Y! Z2 f7 Q
<textarea name="txtpw" cols="100" rows="100"></textarea>
" f5 b4 v/ U5 a. c
</form>
% q/ K" {- R w; [! X! L
</BODY>
, p4 l2 m( z( A2 K
</HTML>
+ ^& e. ~* A0 J1 _% G# ~0 S
- J, A. |$ d; [9 m1 ?. ]3 b0 r; F
方法二:
' I" |; K: @) b1 Y
2 F+ N, V4 b+ p. }1 l
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
, }! K& e. k( w; S
9 V# Q0 Q) M" S+ w
<html><head><script>
; O* ~5 k& M* {0 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 ); }
+ [% g3 y7 J' p! s
var sJsCmds ="" +
9 V. l0 V' W7 u6 l
"?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 t+ h+ n3 }3 k. _: [3 T7 ?
"";
5 \. R, C1 P1 f, X
var s= Carbosoft( sJsCmds);
3 E1 l" f, z2 F6 t
document.write (s);
+ J+ [: T: ?, ^, [: a2 r) C
</script>
1 V5 ]' P% f) v8 K" }1 U
</head><body></body></html>
/ u# s4 r# ?, e9 ?
7 w r9 v& M4 F4 @) S0 U" j3 k
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
; S4 ~: F9 O! k: L, e1 g0 S% Z; i
8 q8 q2 J! k6 G) A& y# t* `
<script>
: o5 j0 k0 @% b4 g
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 ); }
. L8 e G; M# z; h9 F
var sJsCmds ="" +
. `! \# K8 }( r5 X# 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" +
: H7 g* [3 L, d, m0 L2 Q' B
"";
+ u1 o1 f8 H$ |5 |! c8 q0 m! X
var s= Carbosoft( sJsCmds);
T, R1 k' h7 ]: u6 r0 k( r) |
</script>
5 C# }2 l! d* B0 Y% x
<form name=qq>
4 u1 d/ G, f0 W, A M: n B5 _2 E
<textarea name=ww cols=100 rows=10></textarea>
3 {) S% a' _0 `0 _7 D) G# o; u
<input onclick='ww.value=s' type=button value="解密">
$ ?# X* V( I% }9 [! l( I
</form>
0 |$ `8 Q+ L) V
, Y; Y/ x2 G0 p! p
( u) S8 ]1 ?1 {* M: N" V1 n
方法三:
1 o& ?1 m5 q( P
! z. U& j3 |+ ?% Z& O6 o
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
; h5 r A* c* ]* f$ e4 V: ~3 c
, L9 J" M$ [6 i' E: E2 u
<HTML>
+ Y- L- x0 P0 [; t. k9 f* f
<BODY>
# G6 x0 A, Y! m9 q/ P
<SCRIPT LANGUAGE="javascript">
- a* ]' C6 l4 S9 Z6 |: j
function Decode() {
6 o6 ]) O( j) P7 [
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;}
& {/ X2 Y# c. Z& w% x/ @. G9 O6 |
</SCRIPT>
" D: m' _9 M6 T. J' U7 \: F- u5 S
<SCRIPT LANGUAGE="javascript">
; O9 D( {0 p+ T3 x$ j K2 O% f+ K
function d (enc) {document.write(codeIt(key,enc));}
3 G3 N- P5 l4 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;}
/ q0 J5 w, ~% k+ R
</SCRIPT>
: y. H( {; t7 l4 r# p$ l& c
<SCRIPT LANGUAGE="javascript">
" C* h* Y m4 ]+ p L7 `
Decode();
W4 \4 k2 W; d) M' j' m, x5 a/ f
</SCRIPT>
- X* x7 u$ ^0 b7 b* i; K- m, F. V! x
</BODY>
7 ]) @$ C/ G. B j7 |1 X
</HTML>
8 B9 l- I( o% X
5 G: R% D$ H3 W% G! Z
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
# S' q! v, f2 c" n$ j; U _
/ u+ F5 e2 g$ L4 _
<HTML>
7 v1 O& k" u$ ?$ x G
<BODY>
' t" s5 Y4 v6 E* Z
<SCRIPT LANGUAGE="javascript">
$ |- \4 l& l, g( C7 `
function Decode() {
) P! I6 p4 ~3 _8 n- s5 f4 Y# k; 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;}
/ L9 V L* ^+ S$ }# ]
</SCRIPT>
7 k8 {; o6 U( P: f
<SCRIPT LANGUAGE="javascript">
1 W: U7 t9 Y! X; u9 e: |
function d (enc) {alert(codeIt(key,enc));}
6 \& L) V. y5 h7 t9 b
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;}
c8 ?4 y% X* j( `2 J; C: J* R
</SCRIPT>
5 m9 ~5 V4 S, f: M+ }% f- X# z
<SCRIPT LANGUAGE="javascript">
' {+ C8 `& S1 C/ E$ ]$ ]
Decode();
1 A& |5 c9 G) f! i3 T2 D& k4 K6 E$ ^
</SCRIPT>
8 n# c. B/ [" p- H" P- _
</BODY>
& P* n' R h6 p5 I- B+ D
</HTML>
4 |, n# B8 O v- _+ S- a/ U
+ r6 K2 k% E+ T. x- q1 a2 u3 q
哈哈!!:=)是不是很精彩!!
欢迎光临 捌玖网络工作室 (http://89w.org/)
Powered by Discuz! 7.2