来源:lam's blog
; Y: K1 q; w; {* e. C3 [最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
结果在安天CERT小组 看到了这个:
+ D! o( b9 ]+ D5 ]3 V软件名称:exe2swf 适用系统:WIN 9x/ME/2000/NT 文件大小:11K/ L* J& S; C; U* p5 q 文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
, A' l3 ]8 t/ Q" T: f- i; |" P+ X$ d下载:http://soft.hackbase.com/37/20050319/6389.html
哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
作者:海娃
用法:
+ u1 f6 y3 F. q! Q% Q 'haiwa@http://www.51windows.Net '感谢jimbob提供帮助. dim AsoR,FlashFileName3 e/ o. R3 o6 Y+ a1 a/ l! U Set ArgObj = WScript.Arguments
4 S7 p/ A! O1 S' C9 i0 E8 Tdim PositionStart,OKed,Tag,EndSize PositionStart = 920000'flash 4的播放器的大致字节数+ H1 I F3 r7 N9 |5 b! i0 R8 c EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0 FlashFileName = ArgObj(0)'传递路径
: O% y- }+ Z7 [set AsoR=CreateObject("Adodb.Stream")8 X! g7 _% U# P, e2 z5 x0 L AsoR.Mode=3 AsoR.Type=1 AsoR.Open set AsoW=CreateObject("Adodb.Stream") AsoW.Mode=3 7 i% W2 D+ i4 L5 C+ V AsoW.Type=1 AsoW.Open AsoR.LoadFromFile(FlashFileName)
( j$ }- W( @) \" GOKed = true2 L) F4 y& |: _+ |+ ]+ A5 D; y dim filesize s5 c5 Q0 A6 [5 e6 F filesize = AsoR.size
) m3 Q8 c2 U/ z: m# Q! A# ^: |( tif filesize>
ositionStart then
while OKed9 Q6 _% ]( K( }6 S
AsoR.Position = PositionStart
Tag = Bin2Str(AsoR.read(20))
if instr(Tag,"0000000") >0 then
PositionStart = PositionStart + 1# z. }% _, S$ Q) k; q/ S) U, ~
else
PositionStart = PositionStart + 20
end if
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
OKed = false5 I7 e. B* J1 a+ G
end if) B; c& C- |3 H+ B8 P
'if PositionStart > filesize then% _! _+ C. @) R" C4 Y
' OKed = false1 i w! |) ` n8 l
'end if
wend. x" i' W9 y4 F$ @& Q% Z% b
else2 B& K$ D. R& V. n: v x
msgbox "文件错误"
end if
PositionStart = PositionStart + 16
'msgbox PositionStart, w$ e0 p& r, n% E, ^' E
AsoR.Position = PositionStart
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))
'新文件名 dim newFileName! Y, w1 Z! J. q 'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf" newFileName = FlashFileName & ".swf"
9 Z4 I" i* n6 A. k9 m4 U) o( pSet fso = CreateObject("Scripting.FileSystemObject"), \* [) g, o+ \. v6 I( k0 E If (fso.FileExists(newFileName)) Then$ N9 J% S4 n# ^3 \4 m overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本") if overwrite=6 then5 h" @3 `4 Q- s% p AsoW.SaveToFile newFileName, 2( o! N( }' ?7 ~* M- ?5 r) K else: `# _" ~0 _: t( r msgbox "操作被取消",0,"exe2swf脚本"% e* p+ N3 K) p! j' q end if else AsoW.SaveToFile newFileName, 1 end if
: \* }2 v' N Y1 J+ e# J wAsoR.close set AsoR=nothing AsoW.close set AsoW=nothing
Function Bin2Str(Bin) Dim I, Str For I=1 to LenB(Bin). H4 `5 `2 ?1 E5 f5 l6 A clow=MidB(Bin,I,1) if ASCB(clow)<128 then; c( x8 X* J) k Str = Str & (ASCB(clow)) m& C3 v* b: X) A else I=I+1 if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))% Z$ E' c2 I F. K/ w5 w) U end if. g! s c, k5 c) ^' @ ^ Next Bin2Str = Str End Function
4 |/ \8 G' D1 ?$ _+ L' `+ S# l8 }& X

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