|
来源:lam's blog
) Y7 d& @; Q5 R( M& N# S9 ]最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的. - C# W; U$ L( @0 W$ B' Z4 Z
结果在安天CERT小组 看到了这个: 6 A% ]. C1 R2 s2 o+ v
软件名称:exe2swf: a$ ~# g0 N0 S; H( P. H
适用系统:WIN 9x/ME/2000/NT/ r' x. d4 b: y
文件大小:11K) W K2 q2 u r5 q+ M9 `. n- L
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
: d7 A( x: r8 @% D" y+ ^6 [下载:http://soft.hackbase.com/37/20050319/6389.html
7 q- y" g: J8 R4 @4 L! ~哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码 * |1 X" o- A: B& M1 v, q
作者:海娃 % h. a( X5 _; u* B8 t) X
用法:
, \% X5 H' m5 j6 c' u2 n# t# l8 y4 A7 I
- 将下面代码存为 exe2swf.vbs ( [# e8 R. k0 P
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
9 r s9 L) `, X: Z- |
7 V, a8 }. X; H! B, l% v! x6 u9 K$ n- e'haiwa@http://www.51windows.Net
" C3 a, _: V; K& l1 i P- ]! Y5 Z) |'感谢jimbob提供帮助.
% r- {1 `) z8 a; a! ^3 wdim AsoR,FlashFileName2 y5 L& p! Z/ ], e5 |& W* H
Set ArgObj = WScript.Arguments , L3 n |$ {5 ], V: ]2 V2 o
dim PositionStart,OKed,Tag,EndSize; c! _' z3 l! h) y
PositionStart = 920000'flash 4的播放器的大致字节数
* Y) C/ }' @' i7 q6 |! J' YEndSize = 8 'exe文件结尾字节数,其它版本可以设置为02 i+ S) a: H$ t, Y7 Y5 c
FlashFileName = ArgObj(0)'传递路径 5 v+ C+ d0 o/ s/ Z) L
set AsoR=CreateObject("Adodb.Stream")
, P# r8 q a0 D% hAsoR.Mode=3
' H; d* G. u; @5 V J- o5 k# dAsoR.Type=1
& \3 c1 M5 x2 y- `AsoR.Open & p `! H0 a% S; ]
set AsoW=CreateObject("Adodb.Stream")1 e9 x" x( M* W1 y |
AsoW.Mode=3
3 q/ [3 u9 ~ [7 v' TAsoW.Type=1 % _( \0 |* D7 G4 o0 E$ `- a6 l
AsoW.Open9 A/ v6 c9 j# ]% ~0 o; C
AsoR.LoadFromFile(FlashFileName) 8 F, M' h4 w7 n+ W
OKed = true) |0 E# [) m9 v. K0 ?
dim filesize
+ l1 V0 f, m8 S) \3 Vfilesize = AsoR.size
$ X @9 p# m7 i7 x. ]5 C9 `if filesize> ositionStart then
" G( f R$ ^" f9 R! {# v while OKed
8 _1 r- h6 K9 `4 E AsoR.Position = PositionStart1 [9 t* R5 @+ z6 W- y d
Tag = Bin2Str(AsoR.read(20))8 O: G) p" ^1 O2 n- ?4 B$ V
if instr(Tag,"0000000") >0 then1 z7 G9 U, O& ?& |
PositionStart = PositionStart + 1( T. i, P x! u3 g6 R
else
& R) G2 |5 t( B) d5 X, _* _ PositionStart = PositionStart + 20/ Z7 g9 I* Z1 v6 \ w
end if
% S h& N8 e3 R/ ~' \$ D/ s' g if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
/ U& I' c1 e' |7 P( W! \" _; h OKed = false- K3 p0 l) q- R3 f
end if
* O) a5 E$ M* y7 K, C 'if PositionStart > filesize then: ~8 `& c8 W! B, m1 X
' OKed = false; [: c% i1 D4 }) B6 R) k' m$ v
'end if }. r- J# g& H8 p) ]7 a
wend
7 r; e2 W) H1 E6 d) Delse
, j/ X! F- T9 I2 e msgbox "文件错误"2 S& q/ ?' k7 e( @+ X% {1 n8 ^
end if! B" a0 i4 ]; ~- s
PositionStart = PositionStart + 16
7 a$ x- H! r$ t'msgbox PositionStart
E" s1 A3 O% }; N+ nAsoR.Position = PositionStart
+ l# u- d# X1 I( N% aAsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) # G$ l7 \0 s1 L" K/ R+ F
'新文件名
' F4 {% l# N$ Tdim newFileName, j- ?* w) f" L
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf". p* y8 S2 c4 R; ^8 D! k0 m
newFileName = FlashFileName & ".swf"
7 m% J* }" `0 u" v- q) @; }. w5 BSet fso = CreateObject("Scripting.FileSystemObject")
/ h" b3 a4 ?. G9 Z: AIf (fso.FileExists(newFileName)) Then
/ }' P. W( D; q, ^9 n ?7 Y+ u overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")
* j7 N! s- Z, p Z7 ~) H$ Z if overwrite=6 then+ g( ?: t! |9 }6 y( w
AsoW.SaveToFile newFileName, 2
. _+ p. {. C3 |+ u* V, r else' i( m2 Z" _. Y/ H. U. t9 F
msgbox "操作被取消",0,"exe2swf脚本"* b, r, w9 V9 @. K0 p/ O" |8 S
end if$ Y! ]5 M2 c/ n$ y5 W
else1 A7 ^, P# B- [8 C- V0 c
AsoW.SaveToFile newFileName, 1$ ]/ B X7 I3 s/ U
end if ( y5 b% Y8 w7 _+ |
AsoR.close
6 C p& f" W+ v2 y* F [ Zset AsoR=nothing
7 e( o+ v, V% ~AsoW.close, x, O+ @* ^: z. z- {
set AsoW=nothing 2 z' z" Z4 U: o6 p! s$ e2 D
Function Bin2Str(Bin)
) d3 n1 P$ p# Q" T( X Dim I, Str1 k# o2 s% R: v
For I=1 to LenB(Bin)3 U$ Q7 I: M4 a. ]% z
clow=MidB(Bin,I,1)
3 g2 V" k, k% ?8 X if ASCB(clow)<128 then$ l' b6 S* W- t
Str = Str & (ASCB(clow))
% C9 I5 Z0 X7 F+ ^5 S! e: R& [( v else7 L9 l$ `3 V0 v' {0 c1 i: z
I=I+1
/ w& a) F7 ?$ G0 Z. x0 F0 T# U4 n if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))! M( p; N: K: ?; u% ^7 B
end if S0 h; t/ G0 T8 M; z
Next
" @) f, p. K5 R( S1 O Bin2Str = Str) U9 D1 A3 U" \$ [: ], }: C
End Function
$ ^$ A# `6 a6 L" h* y
, P5 M$ z+ \' d! Q$ N |