来源:lam's blog
% }# N, o6 A% l; _) B最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的. " Y: e' d0 `' A1 |) D
结果在安天CERT小组 看到了这个:
9 T. U7 {5 h8 e& c8 P软件名称:exe2swf, r1 f5 K7 n8 Y
适用系统:WIN 9x/ME/2000/NT0 A4 m. M" v/ U4 x% I; G
文件大小:11K
7 N8 j3 g/ l- B文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。 . j3 R, L& D! C7 ^& f
下载:http://soft.hackbase.com/37/20050319/6389.html
w+ O3 M+ ^+ T! ~, {9 I# M哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
. D, z. h2 @" ]( P4 k" k8 D作者:海娃 % \6 C. a& W# D2 Q
用法: w& A/ @ s; p3 S3 N& }0 x. X
5 s4 a/ \ d0 i- L, u0 J X- 将下面代码存为 exe2swf.vbs 3 y& q7 ^* w1 ?5 S( @' A
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
% H: n2 M: U# @& S$ B& h1 |3 k8 ?. M( _
'haiwa@http://www.51windows.Net7 Z/ w$ z/ W3 ~5 g
'感谢jimbob提供帮助.6 |; Q$ v: r9 X% q! [% s
dim AsoR,FlashFileName
/ n) [6 Z6 ~2 i( H( {Set ArgObj = WScript.Arguments : N0 A b6 Y, W; k. a8 Q. w
dim PositionStart,OKed,Tag,EndSize
4 I# \8 b8 Y7 h4 |: t9 \9 J; B- fPositionStart = 920000'flash 4的播放器的大致字节数5 g: ]' C6 o, I/ K6 _! X* C, I7 G
EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0
7 ?9 F/ L: W# d% u; H5 o4 U; @FlashFileName = ArgObj(0)'传递路径
1 r& D+ e8 ^& C7 K% Sset AsoR=CreateObject("Adodb.Stream")
+ ~; M8 ]: Z+ E- r! YAsoR.Mode=3 $ d) Z: q3 p2 E4 ?0 }) J# Z
AsoR.Type=1
7 g/ n2 S5 R: K! MAsoR.Open
# m$ |/ C: p! N) Wset AsoW=CreateObject("Adodb.Stream")1 f6 S2 [$ _ m3 c% V6 W6 i
AsoW.Mode=3 8 h5 L' O: Z, Z, `5 h
AsoW.Type=1 ( P" f8 E- u- s
AsoW.Open
+ h/ O- A# x: }AsoR.LoadFromFile(FlashFileName) 6 Y! G; B8 Z% V! y
OKed = true+ E% G6 @" u1 B8 q
dim filesize
( H$ I$ ]( v( a7 gfilesize = AsoR.size
& G2 }; o. a. Q. T" Lif filesize> ositionStart then% V/ B8 R) H3 y" b
while OKed
+ m' _# w; y( p$ F6 M4 A AsoR.Position = PositionStart7 j! x/ q/ k. X e0 E7 p# ?, B
Tag = Bin2Str(AsoR.read(20)), B) ]: ]7 q- D% F
if instr(Tag,"0000000") >0 then
) L8 ~2 \: g- y PositionStart = PositionStart + 1/ U: w5 t9 n5 |8 f, c. n4 I
else
6 F2 ?8 x4 H+ u; I PositionStart = PositionStart + 20+ j- A7 y9 s- l4 R
end if
: d6 n8 D6 K/ |( [, o" P if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then6 `* N' w; A! O
OKed = false4 n; f- H8 z3 ^) d
end if6 D3 [- x: E0 @% o" ]4 I! T* T
'if PositionStart > filesize then2 `2 q @- @7 l9 R
' OKed = false
+ I$ Q" w4 ^7 t0 h. A! a. {( s; y 'end if' q8 \5 P% `6 g1 D; S2 \2 d
wend
* f# c; o9 W. D! `# relse
7 |8 O1 O$ k% ]6 y8 T msgbox "文件错误"7 j) V( W6 ~: A( X
end if6 c8 X8 ~) Q5 }0 b7 M1 S
PositionStart = PositionStart + 16
( M( v7 c0 a" P& A! Q: T'msgbox PositionStart
$ U7 F5 {5 I" i: j* b" L- L+ L: a& sAsoR.Position = PositionStart: @3 p0 D7 d* F O M
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) + n; ^$ n" V8 [. h
'新文件名, r! w) b& c& b O; K) E5 f. x
dim newFileName
k$ _3 o' u9 |& a% K3 f i" s! O' J- c& e'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"
3 n/ {% Y z9 B& bnewFileName = FlashFileName & ".swf"
% x6 S8 N" M2 W6 D/ zSet fso = CreateObject("Scripting.FileSystemObject")
% v5 j- R2 p( }. B% T5 d1 uIf (fso.FileExists(newFileName)) Then$ S B4 v1 p+ ~# E5 P
overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")8 w% J/ H% y1 s
if overwrite=6 then6 d5 @' d: o/ X* a2 E- a! o
AsoW.SaveToFile newFileName, 2
. g" ?+ x; w5 A! b- S5 L0 p6 ] else% m& T: K2 |# n+ Z
msgbox "操作被取消",0,"exe2swf脚本"
: n; F# b2 T& ?; F3 f, _' {/ M2 u% Q end if
/ z9 q- \% a& f( B: d6 R2 r+ selse N4 o! Z6 R' P8 Y
AsoW.SaveToFile newFileName, 17 L8 d/ i6 X9 Y9 ?
end if + P K$ _1 S0 t+ _
AsoR.close
! e* g+ S* b. C& ^, r! L4 kset AsoR=nothing# B. z+ \6 W: {+ m; M3 J7 G
AsoW.close
/ ~0 w1 o9 e U9 U, Qset AsoW=nothing
8 ~- s0 [: k p- s4 R8 ~Function Bin2Str(Bin)
9 s2 [. N0 ~' K) G1 a# g- K Dim I, Str
2 Z- e- z7 Q" d For I=1 to LenB(Bin)" \" w$ w# g' \7 q) Q0 h
clow=MidB(Bin,I,1)5 `$ d/ R7 J( m& X# J
if ASCB(clow)<128 then1 R) V: A7 u' R l- N
Str = Str & (ASCB(clow))
8 f7 E- ^, w* s else6 m6 }1 x2 g A1 b q& @
I=I+17 T; @, {9 M/ v+ C: }* S. u
if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))2 w/ X; @4 _6 m, d$ e, ]0 \, n1 ]
end if
; b! c: [* J4 N! O Next : {# {9 K& l( O" ]% g/ r
Bin2Str = Str
: f- Q$ x2 h- F- u% y0 h4 I- V4 kEnd Function ) H: X( ~4 V: s9 E. b+ w1 N
7 d9 h" G7 [( [! } |