|
来源:lam's blog , m; k3 `# w, x
最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的. 6 Z0 K" P5 T) R7 B# ]$ K4 X
结果在安天CERT小组 看到了这个: [# t) s* Z" c9 n
软件名称:exe2swf+ _9 N; u+ @$ s0 H
适用系统:WIN 9x/ME/2000/NT
& i5 `& I5 _; f, P! @文件大小:11K I: i% M! q6 j p3 O, p
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。 : E' m9 \: |* I( ?0 H4 p
下载:http://soft.hackbase.com/37/20050319/6389.html
- a7 }" ]/ [- R0 ]6 f哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
7 d' q9 u( @; r9 [5 q) r6 M, P$ z作者:海娃 3 B, f2 C: U4 r. d( y$ G) x
用法:
: ?9 V* f# D0 K* W$ X- I
6 w( d5 o1 ?3 a+ x4 O& A- 将下面代码存为 exe2swf.vbs
) ?1 O# B, q! J( `
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
% d8 B# [# s8 n$ Q
6 M" n) [& O( m" i# O- X'haiwa@http://www.51windows.Net$ Z$ U# i, N8 _6 p# G
'感谢jimbob提供帮助.
+ y8 D! b. v9 o+ C& j [4 X$ ^dim AsoR,FlashFileName& ]# l$ l. J* l8 Y( V9 A% p* r
Set ArgObj = WScript.Arguments : v% r0 w# m3 k! }' c
dim PositionStart,OKed,Tag,EndSize
) k8 M/ R ~3 K* @' w- hPositionStart = 920000'flash 4的播放器的大致字节数* Y7 ~- _5 N+ V" X9 h
EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0; \7 ]1 S; M( ?: F- f! Q
FlashFileName = ArgObj(0)'传递路径
( w2 m9 r _1 r$ ^set AsoR=CreateObject("Adodb.Stream")$ U- H* Y0 Q5 S* [1 L( E* o
AsoR.Mode=3 $ d+ u8 A; H$ K5 A( @
AsoR.Type=1
: L1 G% d: Q6 i4 ^( Z7 [AsoR.Open % }- {6 E* b; w' z1 \7 `
set AsoW=CreateObject("Adodb.Stream")
% \7 d9 {$ s1 @. Y0 K6 M8 @6 U: YAsoW.Mode=3
) I0 M: N7 X P6 M. p. v: |AsoW.Type=1 / U, `( V# ?: S) M" ? f9 F9 I
AsoW.Open
1 W) F4 h( h. g" ?5 Q' A5 p; rAsoR.LoadFromFile(FlashFileName)
4 P: k3 W i9 d( R+ ?; v/ rOKed = true, z \+ C; t& w9 d- B, d( E
dim filesize
9 w1 i$ C T- T2 w) {filesize = AsoR.size
; p2 W+ J {3 _$ K7 _/ mif filesize> ositionStart then$ V% ]/ R7 u' E/ F- o( [8 T/ ]
while OKed
* M6 [9 l3 Y6 ?' C# @ AsoR.Position = PositionStart
8 m4 X4 r! k' D. `& N. T/ n Tag = Bin2Str(AsoR.read(20))+ @3 U8 a* V* N
if instr(Tag,"0000000") >0 then
- h# q- W$ h: Q; ?8 V5 ^ PositionStart = PositionStart + 1
! F# m6 p! B/ i9 R/ s else
0 m: [" [- B; B! T% \ PositionStart = PositionStart + 200 k: r- A& E3 I5 R
end if |7 M/ u- q, U# u0 w
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
( }8 B, [2 O0 W6 E# J; b0 o3 V1 A OKed = false
4 l% b$ n# Z# Q r4 q5 i( b end if$ C' h3 I K, z' g2 G
'if PositionStart > filesize then
1 y2 p& I) s0 Q' ?% d ' OKed = false
8 V( I. x3 t n4 O3 n" i 'end if' R7 e' `4 i8 N0 F
wend# i6 P' {" Z2 P
else
1 K: p5 C! ^- }" h msgbox "文件错误"
2 p2 K* N' m1 L3 X* a, C/ J' O6 send if" Q: Y4 M- o, W+ ~8 K
PositionStart = PositionStart + 16
9 s) O4 ?" X" U k'msgbox PositionStart, l/ e2 F0 u: |
AsoR.Position = PositionStart
! a# I) n. x W0 { W1 s- PAsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) - x$ B3 c5 B- ~ h
'新文件名2 J f8 i" ~! P5 ~8 K2 J% d
dim newFileName
4 T8 c' t6 Q6 u'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"
! R) l! T6 Q* v8 a* @; p1 wnewFileName = FlashFileName & ".swf"
' g5 P% E4 ~$ s w) hSet fso = CreateObject("Scripting.FileSystemObject")$ o# \* J, z; u. Q+ E- G5 R7 J
If (fso.FileExists(newFileName)) Then
( S8 v% |. j% L2 U overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")9 c r: p' U, r5 n+ [
if overwrite=6 then+ ~/ s8 S7 o: X& O* L- O B2 r( q6 W
AsoW.SaveToFile newFileName, 2
0 Y; `1 [( L0 @3 g1 e* ^3 Y2 ]3 s else
2 R( d% `) `* A* I" @* F msgbox "操作被取消",0,"exe2swf脚本"
$ ^5 u0 z6 W! h1 v end if
, f+ }' h. e$ \+ ?' [else3 D7 i. c$ _& [% K2 q; T: `- s/ u
AsoW.SaveToFile newFileName, 15 V2 Y3 _7 @3 B' n" D3 n6 A7 i
end if 8 h I* u0 d; h; p* \
AsoR.close, B! x$ |) e r- k
set AsoR=nothing
& e8 _& e0 h9 _/ F6 }AsoW.close/ d9 x( T2 s) Y# I- X
set AsoW=nothing 5 C& }: t+ F) d
Function Bin2Str(Bin)
+ f' N8 H, U @2 A3 d. K1 t Dim I, Str5 [! I/ g% r2 Q* i
For I=1 to LenB(Bin) U# [. {' V$ e# n" `2 s* [
clow=MidB(Bin,I,1)" v* f9 |3 g% o7 t1 _9 u& Q2 I, K
if ASCB(clow)<128 then8 Q, W* W( L, @
Str = Str & (ASCB(clow))
7 X s* { n* w1 H0 `/ v else
+ T* g+ z1 |# l I=I+1
& ~: n6 h3 L! |5 L3 G, e6 C if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))
- ^5 l0 R4 [0 q( L5 d9 b4 h end if$ y0 c* p) @: ~0 j: v
Next 7 ^$ C/ _- O: [0 k2 W4 `* d
Bin2Str = Str
- {. u0 w; P9 ?/ T% [End Function / R. I' K, P8 u2 }5 l3 R
1 ]6 l) }1 _, \9 {% O |