|
来源:lam's blog / Y5 P5 b) @% L# }4 W. v& Y; i0 s5 C
最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
" i8 t3 c' W& l+ l3 B) i4 P5 G结果在安天CERT小组 看到了这个: ( u1 a$ }/ l+ N. K
软件名称:exe2swf: y7 w1 a* N3 Y
适用系统:WIN 9x/ME/2000/NT
8 S$ G; m. ]6 i9 I) a& | M0 Q: z8 i: ?文件大小:11K
" V1 r) i6 F0 }( m# V文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
- m. ^% J$ t- K0 V: v B下载:http://soft.hackbase.com/37/20050319/6389.html & {" A4 P1 L, i. C9 l U I1 w
哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
+ q$ o& N5 c; F8 a$ y4 y1 T作者:海娃
" J) c" g+ l$ Q用法: ' b v3 f4 p1 U+ g& }
: C* F v6 a; Q: M) ]
- 将下面代码存为 exe2swf.vbs 1 ?2 S5 v: f: b3 r* M3 i
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
" {, ~$ D0 w+ ]: |4 U" g& M
5 _+ T5 Q5 p: ]6 F- k2 R+ Y'haiwa@http://www.51windows.Net4 S7 b2 g( V7 N) l+ t5 `
'感谢jimbob提供帮助.
3 i5 l# @( P, Z* ndim AsoR,FlashFileName" M! C/ y2 V- @2 @! W
Set ArgObj = WScript.Arguments & J# `8 `, L. @; l( D
dim PositionStart,OKed,Tag,EndSize. d0 u, z/ B3 w% D; `
PositionStart = 920000'flash 4的播放器的大致字节数
# x4 L0 Q& i! U7 L" \( IEndSize = 8 'exe文件结尾字节数,其它版本可以设置为0
- q- W4 G3 \" e( fFlashFileName = ArgObj(0)'传递路径
0 J0 V8 a$ |, q0 A1 x0 Y# Gset AsoR=CreateObject("Adodb.Stream")
3 M7 d8 S% s1 e2 m+ e0 \9 W+ xAsoR.Mode=3
. ~- n% F2 d+ J7 ZAsoR.Type=1 / I7 L$ y+ B; N: p
AsoR.Open : E- {# J/ P) A) R1 I
set AsoW=CreateObject("Adodb.Stream")" X+ J$ g2 O$ j& u7 h; H
AsoW.Mode=3 % K4 P8 y. }0 ]- z; S7 c
AsoW.Type=1 - q, [1 p* x% c4 }' K% ^3 e2 |
AsoW.Open- G0 F! P. \8 w# t
AsoR.LoadFromFile(FlashFileName) ; j! v, I6 U3 ]2 T
OKed = true
3 ?4 E% B& d& x3 y9 B9 vdim filesize
7 _' }3 h: A; P$ Yfilesize = AsoR.size
|% z, R6 P+ U5 B; Kif filesize> ositionStart then- n( v/ H1 U! F
while OKed
3 U( J" [: t* ^) Q! E. U3 O9 T AsoR.Position = PositionStart+ A2 J" b" X# X
Tag = Bin2Str(AsoR.read(20))$ @$ L" C8 Y( x
if instr(Tag,"0000000") >0 then
" a) Y/ g+ |. I( |- } PositionStart = PositionStart + 19 O) f5 C& M: ~- n3 t
else9 o0 q7 {2 n, q' g
PositionStart = PositionStart + 20
6 a, n# F, t+ q+ v+ R% Q end if8 E, ~0 b, O6 D
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
9 L8 G+ T, m7 @& M- o OKed = false! Y! C0 g' X; U0 R
end if; V; H4 ]8 ?' o% o5 `) S9 A$ X* o
'if PositionStart > filesize then
' w# \3 O; k5 G% F0 l ' OKed = false
7 G$ L B3 x. c' f0 @; ?4 R8 _8 b$ M 'end if. x+ _( _- u I9 F$ Q6 U
wend$ n+ f" N/ J3 e8 q$ t; w
else) c0 ^* h3 I5 f! a
msgbox "文件错误"
& J# D- ^* X. s6 Fend if5 f' y& Z5 s& C+ T9 k1 M$ K4 F2 v
PositionStart = PositionStart + 16
" d# U R9 J" k" Q. C6 O'msgbox PositionStart, p) s( A" F# u% Y# T
AsoR.Position = PositionStart: N6 a4 A2 s9 D% N+ b6 T
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))
. f9 u3 H7 q" X6 y9 r: g+ W'新文件名. [: A5 k' H N
dim newFileName
1 t* f! L- u1 n'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf") j( e# z/ J1 L p$ h
newFileName = FlashFileName & ".swf" ' r. s& d: [. U0 ~0 S ~
Set fso = CreateObject("Scripting.FileSystemObject")4 N* ~7 V) s( I$ P% |
If (fso.FileExists(newFileName)) Then
]' C* H. F2 _: U0 C5 G9 z overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本"); V0 S9 u* Y# F8 D
if overwrite=6 then1 g2 }2 g, F3 _/ ^/ m
AsoW.SaveToFile newFileName, 2
$ |& }: @' _% Q7 h) r else# f; b: R( b/ I; r" i
msgbox "操作被取消",0,"exe2swf脚本"
1 {3 b0 q) U9 X y end if
+ g2 W) T! c: R6 t& ^else
! W; N+ \0 J7 ~1 m9 Y4 D AsoW.SaveToFile newFileName, 1
U1 {" ]/ V7 y# v; P. u. g4 nend if X* W% f0 r. ?. `. `$ e
AsoR.close
4 f, @' G+ `' t6 i1 F! M8 \% lset AsoR=nothing
: a3 ^" @9 Z. n* ^3 s8 b$ O0 mAsoW.close
/ r$ k& @6 G# Pset AsoW=nothing
# ?6 j9 l' @% k+ e1 |( ~Function Bin2Str(Bin)8 d$ ]4 d. `- |
Dim I, Str
7 {/ C' l$ l: {* X For I=1 to LenB(Bin)' t# W8 ~6 w/ x% G- f& M
clow=MidB(Bin,I,1)1 ~$ `) r6 X) _7 O) o U+ g3 F
if ASCB(clow)<128 then$ ?3 G. ?, w3 ^+ U
Str = Str & (ASCB(clow))9 y* X' ~; S( V
else- j0 E0 X9 K$ ]+ z& S
I=I+1
1 e4 B8 M3 B8 H% F1 l7 j0 e! G if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))) t- Y; r# C- v% x
end if, ^2 L! _! G8 C: B
Next 4 @" }! V: c/ l9 ]
Bin2Str = Str
; _- t5 ^( D8 t" h6 b& QEnd Function
# R1 T( \5 d3 }
) b% g. j& M) X5 Y |