来源:lam's blog
d; D0 M) K5 o最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
结果在安天CERT小组 看到了这个:
# U8 }0 `7 b! N软件名称:exe2swf 适用系统:WIN 9x/ME/2000/NT! y. s. E9 \, O0 u5 t 文件大小:11K/ G, f% f, f w2 { 文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
下载:http://soft.hackbase.com/37/20050319/6389.html
) w! d& d! z& h: g/ i9 R哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
4 `$ T% P1 Z9 E2 p$ n) M" ?作者:海娃
* Z" D: i- e9 M2 r" s用法:
'haiwa@http://www.51windows.Net '感谢jimbob提供帮助.1 T8 w: w: m# b2 E7 u0 O. K" p dim AsoR,FlashFileName" r+ x6 ^: W/ ?& W Set ArgObj = WScript.Arguments
/ J5 J6 L, [+ v' hdim PositionStart,OKed,Tag,EndSize PositionStart = 920000'flash 4的播放器的大致字节数 EndSize = 8 'exe文件结尾字节数,其它版本可以设置为08 ?/ v" \0 f8 g: x. M+ ^ FlashFileName = ArgObj(0)'传递路径
9 t T) {9 c! q: V8 A+ iset AsoR=CreateObject("Adodb.Stream") AsoR.Mode=3 AsoR.Type=1 AsoR.Open " V% K+ f! @$ J' I. c' q/ N7 y set AsoW=CreateObject("Adodb.Stream") AsoW.Mode=3 ) r/ k( ^- _6 a8 |# f; Q AsoW.Type=1 AsoW.Open AsoR.LoadFromFile(FlashFileName)
& n( r, l6 _. lOKed = true! w/ Y. I& u% ], c+ N q! {# u: H# j dim filesize- x: T7 \1 ^2 B) k' l! Q- N3 ^4 ` filesize = AsoR.size
if filesize>
ositionStart then2 g, r: ^& q/ P+ ^# [) K
while OKed
AsoR.Position = PositionStart/ S) ]0 E7 z( q
Tag = Bin2Str(AsoR.read(20)): A! C+ _5 D p' d" y. v2 N
if instr(Tag,"0000000") >0 then0 A4 M# m* j9 L8 R
PositionStart = PositionStart + 1
else8 b: q" d! {! T/ g* E9 [. C6 M7 m
PositionStart = PositionStart + 203 q& V/ `2 r+ C9 F; i: C1 R9 U
end if9 [: k J9 j0 Y$ ~( p' s
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
OKed = false# A, x% `: o1 j1 y* S: c7 L
end if' p9 C/ P7 ]9 B+ {( U% N
'if PositionStart > filesize then
' OKed = false G! Q8 ]/ u& f5 d+ I# A
'end if
wend
else9 p( a$ O; e. w1 U1 @
msgbox "文件错误"
end if
PositionStart = PositionStart + 16% [ I: q9 l6 b; h0 g# X) F
'msgbox PositionStart
AsoR.Position = PositionStart
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))
'新文件名; ~2 n+ h. \0 {2 L$ x2 ] dim newFileName7 q' Y7 L& H3 s- o9 D 'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf" newFileName = FlashFileName & ".swf"
Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FileExists(newFileName)) Then overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本") if overwrite=6 then- k. o& _3 u- }/ q AsoW.SaveToFile newFileName, 2 else msgbox "操作被取消",0,"exe2swf脚本"- g$ u U* ?$ k/ I/ N/ B& p* c end if else# k! W% i2 _& m- d" I. c: d: z AsoW.SaveToFile newFileName, 1& r0 @; n9 g5 t- g/ G end if
AsoR.close set AsoR=nothing AsoW.close. h4 t' W- E- r set AsoW=nothing
Function Bin2Str(Bin)4 W2 ?, f; O9 |/ [8 f- ? Dim I, Str For I=1 to LenB(Bin)8 m- B6 Y, U4 N. s clow=MidB(Bin,I,1) if ASCB(clow)<128 then1 o7 d5 H* D4 X5 h3 W Str = Str & (ASCB(clow)) else I=I+1. y; y& x4 S f1 ?8 Q: X if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow)) end if Next Bin2Str = Str3 k, S( }/ }$ u" k8 o' r End Function
* ^6 z/ _) E$ X; O$ P$ l" @2 f& q

| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |