|
来源:lam's blog
: g( c: M) Y( f, _* G最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
8 A! h1 x' P3 @/ S- @4 o结果在安天CERT小组 看到了这个:
, ^0 u7 u7 e( r6 v6 c软件名称:exe2swf# \9 L0 v' [' w* J
适用系统:WIN 9x/ME/2000/NT
; f0 Y) P M; U, `文件大小:11K
5 Q o* `, k8 }* _# d文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。 # n- ]2 E; f5 f. Y
下载:http://soft.hackbase.com/37/20050319/6389.html 2 z+ M9 J; x6 [8 I0 c% L
哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
! C! r5 Q: }2 v/ N7 A3 F) E作者:海娃 ! m7 t% |# a( V+ r2 c1 I; p
用法:
0 j, ], K7 R$ T/ x: V. m5 x! t. H1 E& P$ o. l% p0 w; j
- 将下面代码存为 exe2swf.vbs , [ L! I! |, j( Z8 o7 g$ F0 T
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
( Z; L7 [" | N' h$ v; g, I! r! L/ j
'haiwa@http://www.51windows.Net
7 D& f) Y! u8 G# @! p'感谢jimbob提供帮助.
5 f8 W. Y0 V5 Q5 \dim AsoR,FlashFileName( R3 ~6 r( F+ \. `$ P9 e; C
Set ArgObj = WScript.Arguments ! G8 {* o4 _, n8 H4 a* K: T- A* e
dim PositionStart,OKed,Tag,EndSize! r% e6 g3 x/ p O
PositionStart = 920000'flash 4的播放器的大致字节数
9 M2 w7 s4 d! Q1 E% F qEndSize = 8 'exe文件结尾字节数,其它版本可以设置为0
5 u9 j/ H% R- @$ ]FlashFileName = ArgObj(0)'传递路径
$ K* {: b* I( X Qset AsoR=CreateObject("Adodb.Stream")
: Q/ o( f! A- A" Z$ aAsoR.Mode=3 - b# z, t$ c2 ]. q4 }- |0 {6 T0 [% ^
AsoR.Type=1
4 E" ?. o# T4 C6 ]/ v2 S6 uAsoR.Open
2 t6 S+ D- d+ Y8 ?set AsoW=CreateObject("Adodb.Stream")
7 E& q2 W A6 b1 t9 H* J2 z% ^AsoW.Mode=3
% x9 M: O: Q- k1 f# t( y- Q4 V; rAsoW.Type=1
+ i6 Y+ }1 b1 i: L* _+ mAsoW.Open0 v! {+ j& S# W4 c
AsoR.LoadFromFile(FlashFileName) 7 f* h U& t: j) i4 M/ W t
OKed = true
6 L5 r: f' V. tdim filesize
E. \* k; B" @; p( |: p0 ]; Hfilesize = AsoR.size
3 |6 P- }6 M! n V Kif filesize> ositionStart then! @, l) G8 W) K4 ~# J# ~ t2 q
while OKed
5 O$ ~% ~" a+ Y AsoR.Position = PositionStart6 ~) R# W* I4 _ j& |* \
Tag = Bin2Str(AsoR.read(20))
5 T1 u( ?( |6 |3 C, c& e4 | if instr(Tag,"0000000") >0 then1 u3 R! o k- x" X
PositionStart = PositionStart + 1
5 \: j% \. p3 @& E, v# N, {9 K else
( U) {8 Q) Z' W( j- f+ u# W3 \ PositionStart = PositionStart + 20+ P2 k6 k1 [, I
end if9 P& U# U7 g/ ^; [/ s& W7 {0 B6 k
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
9 k% X0 D8 O' ^, V' w6 ` OKed = false
- ^8 Q# p# L& ^0 @4 N end if
# n8 k7 Y) [$ D+ v3 Z- Q 'if PositionStart > filesize then
, `3 G0 U+ J: R, T, ]9 q+ L& ^ ' OKed = false, u# l N2 n0 j9 ^) ?; n; V. U/ L
'end if- P6 s- j3 U0 p' M4 h& R
wend
, \1 V* c% u% H; {- Z/ celse B+ |' H. @; H, B9 n5 U4 Y. d
msgbox "文件错误"4 ?$ l5 p! a3 z# H( a0 Z
end if
' E K# j m G" v" \$ D. dPositionStart = PositionStart + 16
1 y3 j; h# _, B6 ?8 G; _'msgbox PositionStart) ]" g/ X+ h2 ~* {5 E& ?
AsoR.Position = PositionStart9 I o' R; _: Z, j
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))
7 D& n9 i5 y+ m1 H! F2 @' t'新文件名, D9 n W% z: ], u+ k. q; m
dim newFileName4 Y l3 [) q) O7 |
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"
0 o4 g. z! ^, t! x8 S- Q8 n1 ]% enewFileName = FlashFileName & ".swf"
2 v8 e% _- K+ N& D/ J% c4 W% X9 bSet fso = CreateObject("Scripting.FileSystemObject")' E! g, o i6 R' Z! M
If (fso.FileExists(newFileName)) Then
" ]6 A p) ~( A- J. z5 Y overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")
: U+ e+ `6 x- k8 |8 X! d- D if overwrite=6 then0 s7 X6 E. f1 q) T3 h
AsoW.SaveToFile newFileName, 2
( `; r* H5 h1 u3 H else
$ Q6 S9 Z) \' m! x& ]- A msgbox "操作被取消",0,"exe2swf脚本"
# v6 a6 x- N# b/ o# v& D end if
. I8 G% F. F1 O, ]) s5 ^) M: melse: D" t: }4 I4 Y
AsoW.SaveToFile newFileName, 1) X- j( o) S+ x: c2 o- m8 J
end if & F8 y4 `( C: P9 p; \
AsoR.close0 g, z% X3 W0 \. }0 u; s% }
set AsoR=nothing
. S0 \/ f5 e' u) ~9 IAsoW.close5 \7 C7 U% b( F0 U
set AsoW=nothing 2 e( W+ H- I& n" B& x/ P
Function Bin2Str(Bin)
) k: q# v/ }0 C& I S Dim I, Str- T$ {) q# o0 E% w8 V! R8 J' a( ^
For I=1 to LenB(Bin)! k& N5 A3 j8 ]$ o% {5 e, P9 Q* y
clow=MidB(Bin,I,1)
: h7 @3 j' ~2 V if ASCB(clow)<128 then& l9 v1 \5 v3 g, J, ?
Str = Str & (ASCB(clow))
4 z/ J0 H' M8 ~. D else3 \% t/ f1 p4 ?% ^
I=I+1
" b6 W: t& U3 ] if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))
( j( u, s2 q4 g. z end if
/ f4 I/ u& Q1 `, q Next
6 A7 Z0 X; D- r8 R9 c% c, ?% } Bin2Str = Str
7 w' @0 C% f$ X- z; F+ c: REnd Function ) b# l. U# O( o' N j) U! m
" f) [/ p; A7 a! a1 N$ ]2 F
|