|
来源:lam's blog
0 i% N* d3 H+ w$ Q& j0 p最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
8 s6 ]8 l2 u0 y+ \5 v- [. F/ |结果在安天CERT小组 看到了这个: 5 X S: _$ j% ]$ F l: ^
软件名称:exe2swf, G% P7 R5 y! O" A
适用系统:WIN 9x/ME/2000/NT; {8 C# \% x* l% R
文件大小:11K' s, F, m- b: S0 e" Y7 R
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
3 g7 b. Y _2 n0 O下载:http://soft.hackbase.com/37/20050319/6389.html
5 G# g0 P& z m# I! W哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码 0 [5 v, \, G8 @9 o# b* b7 Q$ e
作者:海娃 # f0 R" U! x) `5 Q9 t2 X
用法:
! B1 ~4 S7 b2 x! o/ v
# t% Q7 u$ B; h6 Z; G# U- 将下面代码存为 exe2swf.vbs 4 @& n8 l, V! V! j% Y
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
9 r9 m6 L4 o% S- u0 }$ _( A3 }0 v& ^5 m1 B4 e3 u
'haiwa@http://www.51windows.Net% E# o: ]4 [6 R7 Y+ W7 S1 f$ K
'感谢jimbob提供帮助.
$ G( q1 y T7 u$ ^# Q) R6 ?dim AsoR,FlashFileName" q3 w+ t+ Y# y+ \
Set ArgObj = WScript.Arguments
) o) v+ l1 o+ A; I* j9 h8 Bdim PositionStart,OKed,Tag,EndSize# H& k7 u% a+ y
PositionStart = 920000'flash 4的播放器的大致字节数
1 U# P: D4 ?1 h$ \' b* kEndSize = 8 'exe文件结尾字节数,其它版本可以设置为0
5 Q% W1 c$ `6 l3 `0 R CFlashFileName = ArgObj(0)'传递路径 ! ]7 s+ ]5 U; q( V) ~1 L
set AsoR=CreateObject("Adodb.Stream")1 W5 V5 z a+ q* w- x
AsoR.Mode=3
- |4 f; d: ]2 z5 l- I( WAsoR.Type=1 " Q- l* Y8 |% U% E0 P
AsoR.Open 8 z" K9 ?; h. E
set AsoW=CreateObject("Adodb.Stream")0 C8 D$ j& x8 z3 W2 ~' J
AsoW.Mode=3
7 U6 r# D7 q7 d3 dAsoW.Type=1 7 L# U. c. }( S
AsoW.Open
. x1 l# F$ o3 a1 @5 a) XAsoR.LoadFromFile(FlashFileName) 4 ^- Z5 |/ k9 `. r
OKed = true
2 W) t. E- n/ F" u+ _* Ddim filesize
. i4 i" p1 T; Q0 t0 R9 O+ Pfilesize = AsoR.size
" C% N2 C$ i. J8 f7 Mif filesize> ositionStart then
2 ]5 O8 C3 }1 P, a while OKed
/ _& m# ^* T6 g; h9 X* p AsoR.Position = PositionStart6 z+ }: ^6 d+ J1 ?3 Q7 |
Tag = Bin2Str(AsoR.read(20))
& K2 f/ N! X6 |, O6 d if instr(Tag,"0000000") >0 then
! D I8 T9 I M) s6 ^ PositionStart = PositionStart + 1
4 I) j5 g% C. i- d- v: [ else
/ b3 a8 s: n0 ~' o PositionStart = PositionStart + 20* b' \+ ]! U5 Z4 C
end if7 ]- R' t1 u# ]
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
6 I* v4 G" V" F) q$ j0 v OKed = false6 b9 ^! M, ^/ Z3 |' i( S8 f H
end if- J, E% a: k6 B' _8 Q" h% `
'if PositionStart > filesize then* y% P6 y% G0 c% d$ A6 `% B$ A
' OKed = false
9 z. t5 f1 Y: \- R( \9 u& A 'end if9 B: l: O9 b5 W5 F7 h& x
wend
( s% x" R; k3 k4 `else
. s. ^8 B3 M: n0 R( n msgbox "文件错误"
6 _, |7 Y( G4 R& `* Y9 Tend if
6 Z7 \; d; ^, |' TPositionStart = PositionStart + 16
, Y2 p, a- i2 m. W! k2 k7 p'msgbox PositionStart/ n3 V! E) Y3 {% t0 Q
AsoR.Position = PositionStart- |' }4 H( Z# s) J. U* q }5 V
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) + d$ S, s! { C( |" {' {
'新文件名) W2 r; m. v4 V- _
dim newFileName
, x& g, ]* ]' [+ [. G'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf". ~) y# D/ s/ h" L3 F
newFileName = FlashFileName & ".swf"
& V, l9 g2 L$ r5 e- JSet fso = CreateObject("Scripting.FileSystemObject")
6 @% h p9 p2 O$ l" WIf (fso.FileExists(newFileName)) Then8 V2 ^0 k9 _6 K( d" W
overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")# M6 u, S" H" X4 O h# p( \* m) H
if overwrite=6 then8 h# L0 u( c9 o9 c5 e: j4 v
AsoW.SaveToFile newFileName, 2- @" {! O! n+ A% @/ O
else
- A: M" W1 {) p. a1 |8 S msgbox "操作被取消",0,"exe2swf脚本"
4 e/ A8 D3 h( r; d9 @! w \& Z end if
3 ~6 P" b! p4 G% y i/ j* Nelse
& k2 p w; t3 T& T( d2 I AsoW.SaveToFile newFileName, 1: R$ W; E5 ^* [! F i i
end if # o2 c/ L! h& c
AsoR.close
4 B. \! W4 }* `2 S; Zset AsoR=nothing& e1 s/ A9 {8 y# H" `5 q- U2 Q7 J' n
AsoW.close/ I! ~/ l6 q4 b Y4 [3 y9 u
set AsoW=nothing
# ]' d9 w# ?, p' ]Function Bin2Str(Bin)
' X: [) t7 C, ` Dim I, Str% Z" u8 I! `7 Z z7 }8 u1 G
For I=1 to LenB(Bin)7 S/ e: l" P! X2 r/ C4 {
clow=MidB(Bin,I,1)
& P( S* P: @6 s9 F, j if ASCB(clow)<128 then
" v; L' {# I7 o9 v) U. i. t5 U7 C Str = Str & (ASCB(clow))
* U! V6 D5 z5 H* | else
: R4 V4 x1 g2 u I=I+1
7 h; U5 Z& B- R2 G$ d# d, g" E if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))
; L% Z/ B% h% h+ ? end if1 L% N- k* C$ a2 G; _7 R' p' y; y, p
Next
# N' A( u8 N" }- k0 [ Bin2Str = Str6 F3 l' [+ I" i/ D7 E& i
End Function ' K4 _5 ?9 Y/ A: n3 _# U8 i
3 r Q B- m d0 Y$ P$ p
|