|
来源:lam's blog
% c9 X/ r& J2 F9 U9 W Z+ ~2 g最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的. : j! N1 I) {8 B9 `
结果在安天CERT小组 看到了这个: 1 E- x9 Y7 X5 Y& D4 \/ }* [. F- R2 s
软件名称:exe2swf
; k3 l, V* g: V+ I适用系统:WIN 9x/ME/2000/NT
# v/ Q6 J {( j1 f+ s文件大小:11K
- m; R3 s7 Q! `0 z( c文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。 2 ~2 I! N! Z7 l$ V' f; X7 D
下载:http://soft.hackbase.com/37/20050319/6389.html
$ j* n0 _' C5 J( B; I! N; l% ^/ r# {" y哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
( u) O! Q, S, N4 ^" K' c作者:海娃
. D& O0 o$ [3 \; s [用法:
: n( J' q, D- g, p0 I$ h' K/ s0 z" v6 T: {* F
- 将下面代码存为 exe2swf.vbs
% F/ u$ ]) L0 T' ?/ @
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
0 O7 z6 l) u7 c q: A& u; r
! i9 W+ H4 h' l( [; X8 I$ c
'haiwa@http://www.51windows.Net7 w) C: ]+ Q3 }% D( a
'感谢jimbob提供帮助.+ V" W8 p+ I! P! [9 f* Q
dim AsoR,FlashFileName
9 k: q6 S" L' U. j# TSet ArgObj = WScript.Arguments . G* H/ I& F& W% W1 e
dim PositionStart,OKed,Tag,EndSize. `) {/ K6 N) }: |" s3 X X
PositionStart = 920000'flash 4的播放器的大致字节数
5 q+ n2 q; Z; @0 zEndSize = 8 'exe文件结尾字节数,其它版本可以设置为0
9 w G: x# |& b% w/ E. }4 R; c @7 rFlashFileName = ArgObj(0)'传递路径
1 K( Q* S% E2 P& Zset AsoR=CreateObject("Adodb.Stream")$ a# e* ~/ W- \% }) `" U
AsoR.Mode=3
( X% z7 ?/ I, m8 e5 Z" h4 tAsoR.Type=1 4 w/ j& Z1 C5 O! A
AsoR.Open
5 y( c7 R7 ]3 gset AsoW=CreateObject("Adodb.Stream"): l$ g( R9 R; G- V8 \
AsoW.Mode=3
# \9 f O& B& K7 \! y! ^# S$ lAsoW.Type=1
- O" |5 ]7 `5 s) E: ^% v& l- u$ X: S, HAsoW.Open
( n5 j4 I; i9 D4 `* E, X% J. L& oAsoR.LoadFromFile(FlashFileName)
" n) y) [- i z' @OKed = true4 v8 l% q- s: c
dim filesize- V. M2 ^+ ]5 L
filesize = AsoR.size
6 F6 @8 f; A1 }3 M% n- t: |' qif filesize> ositionStart then; i& l" v' H6 E$ T" J$ d! j
while OKed6 i- z5 W) I, S+ l
AsoR.Position = PositionStart3 ^# F0 Z, C3 h5 r
Tag = Bin2Str(AsoR.read(20))
1 u% E3 N: i( W if instr(Tag,"0000000") >0 then
3 M; A7 M% D% L* @: ]8 h7 r7 z PositionStart = PositionStart + 1) g3 _/ ]. d5 u9 V+ O1 k l) L5 D
else
- d0 _+ e+ _( K, F PositionStart = PositionStart + 20' ^+ V1 l: p0 J; T8 Q
end if4 Q7 s2 n" F- m; H+ B
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then3 Z, e" [5 O# q, W- j0 T% \0 a, r
OKed = false; Y5 @4 X6 m1 ^
end if
. o j, U8 j6 A s 'if PositionStart > filesize then: i# a+ x+ u7 l6 G, `
' OKed = false
: Z9 f9 J6 N! y) P6 f 'end if% B# ?. C5 b% y5 F
wend
# o: R% U2 ` `3 U6 Delse/ @& a! M6 ^4 R+ ?1 S: ~# F" V& J5 x0 U- O
msgbox "文件错误"
# M- M0 Y8 P( z( E+ b3 M- Iend if6 N8 u" J' Q/ O' Z
PositionStart = PositionStart + 16
* k& ?) X y% q# o'msgbox PositionStart
% v- M1 h% U4 TAsoR.Position = PositionStart! B: z$ l% |$ ]3 F7 S! }
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))
. v- ]- }- s @9 Z a! T'新文件名
7 i, ?7 U1 Z% S5 A7 ]dim newFileName% K1 w6 U" ]$ l% G2 H) C
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"! {* I$ I8 ?. ~; K, E& w
newFileName = FlashFileName & ".swf"
6 D2 J! C$ a# e4 J/ g9 ]6 H' A; bSet fso = CreateObject("Scripting.FileSystemObject"): A- U9 r6 e' d) P }) w
If (fso.FileExists(newFileName)) Then
. u8 |! b0 J/ I: r# O- b overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本"). X7 b2 e: H5 D& M9 S1 a
if overwrite=6 then
" ] U9 v7 a6 D u, | AsoW.SaveToFile newFileName, 2/ }; r2 i) U8 d4 `- o
else7 N+ F, t& K7 X
msgbox "操作被取消",0,"exe2swf脚本"
& ~4 w( \( K' V. x- B7 Y1 ` end if! X5 h/ P+ k5 Y5 K8 M Q
else
$ g- l+ k, f+ D AsoW.SaveToFile newFileName, 17 D6 ]1 y- w3 R8 ^- w# N5 I6 o, S
end if 0 J: Y+ B& |- E* a* v( W
AsoR.close, V0 E4 }- v- d/ }7 ~: x
set AsoR=nothing" x' Y$ ^6 D. @8 [6 y' c0 o: P2 n
AsoW.close
5 @3 {# z m1 F7 yset AsoW=nothing ! d$ w$ s1 N( ^- N
Function Bin2Str(Bin)$ I# c/ T/ v% |2 G( J }' } t
Dim I, Str
J# N& }6 C# d' b1 w6 A" C For I=1 to LenB(Bin)# X4 q' U1 ~2 r& ?5 t
clow=MidB(Bin,I,1)
5 L! F+ ^1 s+ R1 c2 m7 E if ASCB(clow)<128 then
: P* r7 f3 Q$ j L, X& C# L4 i0 a* m Str = Str & (ASCB(clow))- R; [$ w0 T1 i" M% x/ t% Z# k
else
3 ^( ]- o7 J6 C& t, k6 x I=I+16 G4 A! |, s: G. [3 {: I
if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))
6 h4 n, b3 }! K; S9 z. ? end if. g4 o3 x$ T T* l% ?
Next / {# T L3 w' T: g
Bin2Str = Str8 t' S! G, Q& p; B1 I1 x
End Function
0 E) P8 S4 [* B% m* m C g, p6 Q( D" J4 R) v% M3 V
|