|
来源:lam's blog + e# R1 N: V& Y3 f
最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的. ; X6 d; s) Z: n( ~9 l* A
结果在安天CERT小组 看到了这个:
7 K8 g8 G( J& C- O软件名称:exe2swf
9 h, ], \0 E4 H( v适用系统:WIN 9x/ME/2000/NT- O, G; e) [1 b, P" I
文件大小:11K Z$ S, N4 h- P' |' i% \! g1 F: h
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
" d1 Y. [( ]+ \: v) {/ e" x' m$ ~4 T下载:http://soft.hackbase.com/37/20050319/6389.html
) E, b O, F8 [* L, _! \哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
7 O9 Y" j# P) j: ^5 {$ J. ]作者:海娃 , o _- W4 s: X F
用法:
8 z( T. m6 U. I/ X7 a3 O8 v2 c
; _) W8 Y! A) @- 将下面代码存为 exe2swf.vbs " [+ s1 b6 q7 h( q5 {7 t
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
) X) S) C' s) o, W
5 ]# p- _7 Q+ M8 {'haiwa@http://www.51windows.Net
* F* K, p$ a' w+ U4 }. M. |7 D'感谢jimbob提供帮助.9 G; O6 L t. x# \; t0 h4 q1 ^
dim AsoR,FlashFileName
7 r' d) B- F) ^: T* ASet ArgObj = WScript.Arguments : ^. A0 Q# c) B
dim PositionStart,OKed,Tag,EndSize
( P: ]# P" w$ ^! G# ~7 ZPositionStart = 920000'flash 4的播放器的大致字节数2 e) P5 A) C" J0 L# l
EndSize = 8 'exe文件结尾字节数,其它版本可以设置为08 w9 h+ Z9 r4 P4 {4 B! |
FlashFileName = ArgObj(0)'传递路径
' A2 J! L2 {* ], f+ y- Wset AsoR=CreateObject("Adodb.Stream"); C* u+ D/ n& T7 C. a. }
AsoR.Mode=3 3 ~: S9 V/ c: ]2 n; \$ ~9 p
AsoR.Type=1
- B8 ?; a3 P m( ?* R4 [1 n _AsoR.Open ! Y4 d. w# n8 w: H' J+ S! x
set AsoW=CreateObject("Adodb.Stream")) y! l% E) P! z' t8 l* j' b
AsoW.Mode=3 ; h! z3 B1 v/ S2 Y/ l& D* j7 H
AsoW.Type=1
d: Y6 z9 m& I- j k- YAsoW.Open4 r# V# l8 H2 W$ r
AsoR.LoadFromFile(FlashFileName)
# O2 \( S4 {& aOKed = true: ~8 V4 z' ~' G( J' m
dim filesize
/ w$ _9 S% r' {filesize = AsoR.size : p$ i" P F' J6 I/ r N, ?8 y
if filesize> ositionStart then6 S- _% w2 K; a1 |
while OKed! c9 g. w2 ^. H& l& `! g
AsoR.Position = PositionStart8 }; B+ i, h5 w# d" _( K; m
Tag = Bin2Str(AsoR.read(20)) E D# i) k" ?& |) d% J* U# y! }1 y
if instr(Tag,"0000000") >0 then
3 D% S u$ g' J3 y PositionStart = PositionStart + 1
9 A% r0 t: {+ {1 C7 V" A else
. F& K+ Z" E. `$ m PositionStart = PositionStart + 20
6 p8 \) n+ l" V end if
9 Y( y8 J. Y# P1 Z. E- c if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then% R! h V$ M' L1 T" t3 p5 m
OKed = false. P# f7 C- @" q1 @3 P
end if
* F' A7 @4 q1 h9 v, V 'if PositionStart > filesize then, H. r9 J% x+ z! ~' D; r
' OKed = false
- Q/ u% l% X$ p+ u, U6 G 'end if1 E2 b0 [" k8 t2 ^8 R6 ]
wend$ D' _1 \( i; k
else1 I* v0 a8 z( V! v1 s: Y2 Q
msgbox "文件错误"
: _ Z6 I6 X- w4 r. [0 s* d/ _end if
0 z1 M( J% N1 }' |# p2 [# {* P& X# YPositionStart = PositionStart + 16; b6 P3 R p$ [' b% A2 M, F
'msgbox PositionStart/ V+ ]8 m! f0 p2 H4 z- X' L
AsoR.Position = PositionStart
( d# D' v- x" {4 \7 p: uAsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) & k: p: T+ o6 Q8 _/ b3 `
'新文件名! e- A c( o' v# h8 {+ j: W
dim newFileName7 ~$ V3 i! o2 C8 a
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"8 }; U- e( R8 N3 W* ?5 [4 d
newFileName = FlashFileName & ".swf"
! X4 y G0 c. n$ oSet fso = CreateObject("Scripting.FileSystemObject")
5 e3 |5 w) M" j1 ]' }( ?. i! g. EIf (fso.FileExists(newFileName)) Then
+ Z2 V: k) q( y' {* d8 V: y1 f overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")
' b* C7 {# d | W if overwrite=6 then8 P$ l: E2 l1 ^. G
AsoW.SaveToFile newFileName, 2
7 H, Y, a/ F2 m else& A2 E3 P, a. d$ s# W2 F( @
msgbox "操作被取消",0,"exe2swf脚本"4 L0 l! ?5 x* J
end if
n7 u( ?5 ^. x) ?1 h4 [else
y5 M9 M% B. j. x0 `4 i AsoW.SaveToFile newFileName, 1
, B! c" ~# {9 r; eend if * H, f. ]% q8 i6 |
AsoR.close% J4 c/ @, a* I% u+ x
set AsoR=nothing
8 I6 {* z! C% ^. r1 xAsoW.close+ S' N0 {9 {; F# f2 u
set AsoW=nothing 7 V0 u0 }; S4 m
Function Bin2Str(Bin)
! s& C* R/ Q z8 l; c Dim I, Str
* T e+ M" b- s. Z# r- M+ }; n( \: e For I=1 to LenB(Bin)
% c# y, v h" C* R$ t clow=MidB(Bin,I,1)
( L6 ~) u0 W: `) }3 z- C' ] if ASCB(clow)<128 then
! I7 y" j+ Y8 u" t/ c: j Str = Str & (ASCB(clow))9 Y7 q8 _. p$ v7 J {' _
else
4 {* z3 w% U! Y! I7 k: `4 C I=I+1$ T9 E# Q$ H" C/ h7 a
if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))7 z1 f* O7 e; g" l
end if/ ?' F3 x* G2 R, W
Next 0 ^3 K) y; U: S) J5 I
Bin2Str = Str! s% t) [- }3 o) A
End Function
! s8 k4 s# F. ~- b$ ]* a8 c2 _ n U/ F, O
|