|
来源:lam's blog
6 n3 G3 z; B4 x M: O最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的. 2 `% D% w+ y: |
结果在安天CERT小组 看到了这个: - x9 R( X; O: r# f7 t/ k. r) J
软件名称:exe2swf. V' i7 y* M) q/ T
适用系统:WIN 9x/ME/2000/NT
- b! r) a5 o+ s: V" A5 L文件大小:11K! P1 X2 C/ @% d, c1 x
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。 0 f3 P% o- F5 C9 n9 J
下载:http://soft.hackbase.com/37/20050319/6389.html
2 d* @3 Y$ g8 i$ q: D哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
2 j- X/ A6 I0 T0 l# D, ]9 O作者:海娃
! e9 |% Z0 G$ `- s# Q) Y& D; A用法:
0 z8 M4 q4 \3 E4 m7 R. k
" L2 S9 P/ _* Y7 B- 将下面代码存为 exe2swf.vbs ; N- }1 A P1 a3 |- D) d6 E# G* p
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
& D2 h# W& v2 g9 s$ M
1 L0 [& @* n* k
'haiwa@http://www.51windows.Net% \: j1 q! U j$ G' \$ ~2 y# ?
'感谢jimbob提供帮助.
{- W l! f. o; tdim AsoR,FlashFileName
: A6 n# ]; r# }5 bSet ArgObj = WScript.Arguments
* J0 A9 @1 a) o' z( ?$ [& J) Adim PositionStart,OKed,Tag,EndSize
* w l9 e, j% E$ y' ~2 H8 oPositionStart = 920000'flash 4的播放器的大致字节数. n/ v3 l) \$ j4 t% r& v5 ?
EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0
6 t6 Y; b% p: r" ]" u UFlashFileName = ArgObj(0)'传递路径
! A I6 |- u* G% Nset AsoR=CreateObject("Adodb.Stream") B7 Y8 t+ e$ F! L8 w! S
AsoR.Mode=3
, Q+ o( [ G3 O1 T$ h8 m3 z' P2 LAsoR.Type=1
# i; w. H6 Y: X6 W' X" I/ EAsoR.Open + n9 `# e e. u- ?
set AsoW=CreateObject("Adodb.Stream")9 d( Y ~9 D4 N2 M
AsoW.Mode=3 ! j0 |, X) g; k
AsoW.Type=1 6 I. B2 l4 N4 H3 K+ ?* l6 ]6 S- A# |
AsoW.Open
! |* R: t/ N8 ~3 |$ s! HAsoR.LoadFromFile(FlashFileName)
$ j+ C# C5 d% \ mOKed = true
+ \0 B- x+ k( j# Q' d8 T/ kdim filesize8 ~- V6 T+ G% _8 D7 S1 T/ X2 d
filesize = AsoR.size S8 Y, c( Z( g. ?) a8 v
if filesize> ositionStart then
- [1 `1 T7 X- p5 Z7 K8 p3 \& A while OKed
' S' I3 n, S/ I: @ AsoR.Position = PositionStart: K1 D, X+ X8 |; c: p% f+ ~
Tag = Bin2Str(AsoR.read(20)): O, `* _) x! G$ [
if instr(Tag,"0000000") >0 then; k% b; H- {0 ]2 l3 W, \1 [7 p
PositionStart = PositionStart + 14 F2 M2 y, d* C# J7 t# l) t# s
else
* a2 H: _' n% X+ F/ |/ o PositionStart = PositionStart + 20) @* u% i. _0 D6 b% I# _
end if
* M, c4 r! B% w3 g: |6 \ H! n if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then! t5 L. h9 \* `, }8 N0 ^ M) L
OKed = false
. ^5 x- S# i1 { end if, r' [* ]5 S- j# r: u
'if PositionStart > filesize then4 ?1 p/ ?3 I& Z5 g
' OKed = false
/ G4 C3 p9 N2 g- j/ _7 ]' G 'end if
' ^5 w( S3 g. ]) b/ @+ q wend% [: q E g6 _& ?7 ]
else. e/ l7 A/ y$ |6 s/ K
msgbox "文件错误"% }, C! m$ F* `1 \4 F: m& A
end if, s E1 \0 i+ \4 b4 _) q$ @/ r# I1 f/ l
PositionStart = PositionStart + 16% |1 c" v. O* i G9 \2 z
'msgbox PositionStart
* e! S9 y% J0 I3 t9 g1 v6 q, `; BAsoR.Position = PositionStart
! F! {1 ~5 ~( p2 G* QAsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) $ z- O0 S! v% {+ K _- {
'新文件名
7 h7 x4 \( Y& b) Idim newFileName! x2 R0 N+ f/ K5 J2 c# g
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"" @) B, y9 @- K
newFileName = FlashFileName & ".swf"
0 |7 Z% ]; }/ G( y+ c. `Set fso = CreateObject("Scripting.FileSystemObject")6 W# O. f0 _/ S% n- z0 N$ P/ I8 R
If (fso.FileExists(newFileName)) Then
/ o1 Q8 R+ V, R9 x( r, e' } overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")3 M8 G1 s; u% ~. y% N8 \' Z* R# \
if overwrite=6 then
6 j. v8 j- y" i" K AsoW.SaveToFile newFileName, 26 E2 K- V4 m C2 Z
else
g. j! e& g2 h# R$ k) N msgbox "操作被取消",0,"exe2swf脚本"
; R6 S" p8 Z5 ?+ |2 m6 l$ W) \ end if, @9 R: Q' F3 D7 }
else) ~. a# }1 z9 V; S/ R) i
AsoW.SaveToFile newFileName, 16 [! ? v: {! x) v. l- B
end if
4 s" V; G# F# U! i! M5 sAsoR.close; i( r' p8 Y& Y: j4 [
set AsoR=nothing7 T3 L, |0 `$ ?! t
AsoW.close
+ }/ h" [. f: ~( {+ D! ^* gset AsoW=nothing
, M4 N; [# z# ]! U) mFunction Bin2Str(Bin)8 {* h1 F" e( u& m" j; Q
Dim I, Str! _% j ?2 N+ R, t
For I=1 to LenB(Bin)
3 b( ^1 U, f2 `$ W8 }$ U7 X clow=MidB(Bin,I,1), J7 X2 M F; f* x' m0 ~
if ASCB(clow)<128 then
" R8 }- q$ b3 d( `6 K Str = Str & (ASCB(clow))* i2 l. t7 P* F; Z. {0 {
else
3 z! T) E7 P3 t* o I=I+1
: R, W" @2 t3 w if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))4 w% H5 z! {4 c
end if* T: w* I m, l+ z$ K6 F
Next ! `- F# f: \; |% o/ B' D
Bin2Str = Str- V9 }0 s+ j( c7 U
End Function ; {2 f! O" l* a, z+ _3 g. \
, W! D# `5 p& c* k$ d4 S, [
|