来源:lam's blog
最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
2 D: J0 V; C6 Y" C' b结果在安天CERT小组 看到了这个:
软件名称:exe2swf 适用系统:WIN 9x/ME/2000/NT 文件大小:11K8 |# e3 |6 K2 J8 B$ t% |' d0 q 文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
下载:http://soft.hackbase.com/37/20050319/6389.html
; Q, C5 {/ H5 r5 y" p% Z" I哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
: [" v8 J- E, f& D8 a3 R8 N作者:海娃
用法:
'haiwa@http://www.51windows.Net '感谢jimbob提供帮助. dim AsoR,FlashFileName3 ]$ a& {- k: [! o8 p. v7 e Set ArgObj = WScript.Arguments
dim PositionStart,OKed,Tag,EndSize T7 \! B+ l0 K4 k. L PositionStart = 920000'flash 4的播放器的大致字节数& v3 `: I) _% ^/ |3 G3 G m8 @3 C EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0 FlashFileName = ArgObj(0)'传递路径
3 e3 c3 t$ R/ m* r8 Eset AsoR=CreateObject("Adodb.Stream")' [2 J, K9 }3 O AsoR.Mode=3 AsoR.Type=1 AsoR.Open 9 L1 i" A& t; f8 Z# E9 l/ ~5 b9 a5 D9 a set AsoW=CreateObject("Adodb.Stream")3 @+ H4 r) Q9 e6 {. y AsoW.Mode=3 AsoW.Type=1 8 O" V2 [) Z2 W/ j& L4 n: T3 ? AsoW.Open# c2 _4 q* b6 m8 ?# e5 q" }2 C AsoR.LoadFromFile(FlashFileName)
- U# S1 P, A5 m3 a# J& R6 g$ GOKed = true dim filesize filesize = AsoR.size
if filesize>
ositionStart then& P5 i. d, g" D) I; h+ H
while OKed3 Y! K2 S* W" G6 Y. G& U
AsoR.Position = PositionStart2 f* U f6 d8 z) O
Tag = Bin2Str(AsoR.read(20))$ [. ]- D( E [& z
if instr(Tag,"0000000") >0 then
PositionStart = PositionStart + 1- h; F2 R3 [; ~
else
PositionStart = PositionStart + 201 x1 }6 u+ X9 M
end if2 Q4 l& r' E3 x: _
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
OKed = false
end if
'if PositionStart > filesize then& h$ z& k: ]5 _+ B: w' A+ j
' OKed = false
'end if
wend9 V2 p- ~- [ b- q3 r
else) N# ^1 R5 N; Z* |+ f+ {, e" v
msgbox "文件错误": }/ _' d* V# L9 Q; J+ N2 r' L
end if) L* k$ ]5 @; c( ]# H6 Y# ` ]: Q3 ^
PositionStart = PositionStart + 16. G! S! E( q9 w5 J* w5 ~: I
'msgbox PositionStart% c) H; Q6 |( c
AsoR.Position = PositionStart
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))
'新文件名& X3 ]) w: q8 U( s dim newFileName! ]$ Z& {9 c1 Z% d& _ 'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf" newFileName = FlashFileName & ".swf"
0 U+ d4 e5 P' h, a4 Q2 vSet fso = CreateObject("Scripting.FileSystemObject")# n5 q0 o2 w% i! o If (fso.FileExists(newFileName)) Then overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本") if overwrite=6 then/ X( T; M3 @; _ m9 a AsoW.SaveToFile newFileName, 2 else msgbox "操作被取消",0,"exe2swf脚本"2 E; ]6 h& r8 |; K+ ~% z end if; N, F" |6 X, u' L* \9 A: s else AsoW.SaveToFile newFileName, 19 c3 a0 y; I* B) W5 e end if
AsoR.close set AsoR=nothing# Z/ c1 d7 _9 o% k8 a, O( h AsoW.close set AsoW=nothing
Function Bin2Str(Bin) Dim I, Str; Y7 o6 K6 r; ] Y For I=1 to LenB(Bin). r' W" p, I i' b% [0 v: C clow=MidB(Bin,I,1)" d. H% A9 Y5 ]! R if ASCB(clow)<128 then) T* l, i7 ]9 Z* x6 ?$ }! X# T/ H Str = Str & (ASCB(clow)) d x5 Z1 ?4 h$ {3 W8 D else8 O5 B& b1 R, l- L _! [ I=I+1 if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow)) end if/ G- `& U' Q$ T# G& d k' h* q Next ( U/ |" G1 S8 G5 f* s7 o. x4 k Bin2Str = Str End Function
/ f6 _) k/ ^, V) _/ X

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