|
来源:lam's blog 2 Q% x- U8 v O7 Q' b ?' S
最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
0 x& i Y* I: y1 F9 ]结果在安天CERT小组 看到了这个: 3 O* s m# M+ r" K& ` z- d
软件名称:exe2swf
3 \, a4 P" J9 N/ p, f适用系统:WIN 9x/ME/2000/NT
, t. D# A4 F/ P; ]) f" k7 F/ {文件大小:11K& Q3 h6 p' M( a: B
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
- M5 j$ b) @) J" M. F% a' {下载:http://soft.hackbase.com/37/20050319/6389.html
' a) V4 q: W# ~" G- F8 }- x8 N哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码 " ~$ Y( }. C( |
作者:海娃
$ G# L2 u j/ h9 ]. @用法:
2 q( t' j1 c; M/ \" ?- E& t: U `2 C9 n' x$ |8 S' y
- 将下面代码存为 exe2swf.vbs
# |/ _. A1 ~6 W: F. o1 ?! ~8 n
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
) j! m5 K8 Y$ R: c& N+ T5 ?
" d5 q: Y, ~' y+ F: S'haiwa@http://www.51windows.Net. D# I' L7 c2 {" o2 `2 B
'感谢jimbob提供帮助.7 J' g3 p3 z. j8 ]( E% b
dim AsoR,FlashFileName
0 h- s# w M6 G0 e9 S" b# mSet ArgObj = WScript.Arguments
1 S; a6 H6 H7 f, |0 `( F! v9 R7 y% Tdim PositionStart,OKed,Tag,EndSize
- @7 d4 K8 h9 r- I' ~PositionStart = 920000'flash 4的播放器的大致字节数) O5 @' c! L0 b; e( l$ |( L
EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0
p" ~5 _, k. e* y) }; \FlashFileName = ArgObj(0)'传递路径
" P3 h6 P `9 Nset AsoR=CreateObject("Adodb.Stream")8 M) u q# I- I
AsoR.Mode=3
- b6 u4 s6 }4 H+ h! eAsoR.Type=1
. C% P' X4 ~5 p& o( ZAsoR.Open
0 c8 F6 Q: B. j8 A/ U9 \set AsoW=CreateObject("Adodb.Stream")
* |% q; p) v2 M4 `: XAsoW.Mode=3
' }. r+ }6 e6 `( V! qAsoW.Type=1
! v0 q' J6 a5 k; uAsoW.Open
4 P* `( R0 b$ k0 xAsoR.LoadFromFile(FlashFileName) X2 _5 ^* p, g! P
OKed = true
2 }( P0 q7 H- j, w$ }5 |dim filesize! F! G) Z" H$ \
filesize = AsoR.size
2 @& c/ R7 N, E( Yif filesize> ositionStart then
x' H$ M# |! X4 b- [+ W while OKed
8 L( R6 O% v3 i! _ AsoR.Position = PositionStart
8 w1 \: f9 I! b1 w, Y Tag = Bin2Str(AsoR.read(20))- J+ _ Y5 {- S4 k: o- d
if instr(Tag,"0000000") >0 then; ^. b) O0 a2 ^6 e0 {3 ?& t- X, f+ `6 D
PositionStart = PositionStart + 1- \( U7 p$ V* @/ V4 Z1 d; C# @
else8 w( j5 c. x$ Q7 w1 i* ~6 d
PositionStart = PositionStart + 208 ~8 c* z# N& M$ ` F
end if$ ]: N8 A! y# p, g% O3 r5 T
if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
9 [" N; R" K- P4 O OKed = false2 ^' m; J) h+ y d
end if
- z2 j" f! A5 F 'if PositionStart > filesize then$ P C* |* M1 v u
' OKed = false
6 J5 O- h- e; \. d. J+ j 'end if
$ g0 ?! l$ ~1 ~4 g! C wend
6 }, S8 D+ h* y) k+ P0 e; K( O5 velse
4 t; Z6 q/ o( v( t/ e4 d# s msgbox "文件错误"6 `+ ^ W1 e4 D8 @, j. I
end if
& i q% J! o0 n8 H$ Y/ f' ?PositionStart = PositionStart + 169 C$ j, P( ^8 g3 L+ D" B
'msgbox PositionStart5 y5 S/ u+ q; Q2 f, t: I
AsoR.Position = PositionStart
% j/ F" l* b9 H" c* VAsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) ! y& |& g" c+ U) l9 x- G! L3 f8 V
'新文件名5 @7 }/ K+ V* E/ o
dim newFileName2 J! o* M& V k: u" l2 G' @
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"
0 L9 P. E/ q4 u# n: O; jnewFileName = FlashFileName & ".swf"
& a. j9 f( {& j& C1 ySet fso = CreateObject("Scripting.FileSystemObject")
/ j5 A! L9 X) P nIf (fso.FileExists(newFileName)) Then
C) ]5 Q) |* ]$ R1 `# V( u overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")
' O/ n- v7 L, J8 X) B; l; `- _# D if overwrite=6 then( R) j0 T) a4 |" C; H) `
AsoW.SaveToFile newFileName, 2) o) P! p) X8 m- ^2 v; |
else# ^3 E' \2 x6 G3 g
msgbox "操作被取消",0,"exe2swf脚本"
; @0 b g& G' N end if
0 b! c7 H& l A3 ]; A! f+ ]0 s* relse
# k; m( Z0 S6 w3 n( m* a( d! g5 C AsoW.SaveToFile newFileName, 1) n2 [# L) U7 C2 u
end if / X9 i7 P, Q& B; B
AsoR.close6 |6 L( b: T( E1 s' j" ?1 D& z
set AsoR=nothing
9 X8 Q I0 h& ~: t0 ]AsoW.close
( F) J8 f% ^, z+ `/ }3 T) A$ z0 Pset AsoW=nothing 2 ?' m8 U2 T3 \3 b$ \4 {" r8 H
Function Bin2Str(Bin)" E2 O: h% U. Y( k3 W O
Dim I, Str+ g$ W! Z, k) p0 P$ M
For I=1 to LenB(Bin)
2 T2 _2 y0 W4 c; K% S2 x clow=MidB(Bin,I,1)& a4 F A1 k4 I; R2 @; x4 b
if ASCB(clow)<128 then
( E; J8 S# ?% { O: ~: z Str = Str & (ASCB(clow))
5 b% C# e7 W/ d$ h/ V else
- U# Q/ l |7 `# P" m7 K! h I=I+1
+ f$ `' L9 E2 m' I& h' N if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow)) r: R [1 E% b5 C
end if
! O1 ]& F4 v; ~8 o2 g6 F/ ^ Next
* S/ o0 Z% j# A. P2 b6 } Bin2Str = Str
7 K- v- [ ^0 r! wEnd Function
: n# h/ L3 Z# n7 S
' M, {3 g" a) a( n% p |