|
来源:lam's blog * `7 z+ @' S" K; @5 n7 E
最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.
5 M. q) O1 D- G4 ~ b8 T结果在安天CERT小组 看到了这个:
/ {; `) v0 `: t9 l: \( `8 B0 V软件名称:exe2swf6 j& i+ ~9 x2 k, N8 X3 u
适用系统:WIN 9x/ME/2000/NT6 n- r l' K5 ~4 Z2 ]1 J3 k6 v2 y
文件大小:11K# t5 l0 o& ]4 Y* @8 R/ |/ I
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
, q0 F5 [7 ^8 w( b$ A/ Z9 q; X下载:http://soft.hackbase.com/37/20050319/6389.html
E3 T1 y; ^! U8 b+ G哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码 / K+ z# c* \0 Z2 I
作者:海娃 6 A# I4 D: r7 g8 L. X6 o
用法: $ w7 a3 i! o% a$ }
% j1 w* S" |5 _+ Y- 将下面代码存为 exe2swf.vbs 7 u f6 V; L. r, f( J- V( i+ E
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
5 I; a& u; k7 r7 C p( {. v4 j" L7 j- o
'haiwa@http://www.51windows.Net0 Q* Q" b! S* d/ l0 [: b
'感谢jimbob提供帮助.* A' ]3 S7 e- ]( C
dim AsoR,FlashFileName
0 e0 U8 o% ~: c( Y: k; e4 v: hSet ArgObj = WScript.Arguments 6 T6 h. h) l4 f4 w& O$ s z
dim PositionStart,OKed,Tag,EndSize
0 e; [* ], M! D; I- APositionStart = 920000'flash 4的播放器的大致字节数
& ~% v4 ?$ `# e; N T) aEndSize = 8 'exe文件结尾字节数,其它版本可以设置为0; ^: L8 R$ ` `
FlashFileName = ArgObj(0)'传递路径 3 U/ d8 K( K7 l, A, ?
set AsoR=CreateObject("Adodb.Stream")& p' O# F+ c) o. J0 Q
AsoR.Mode=3
+ ^5 v* `$ X, {' K w; {AsoR.Type=1
& [1 w; p- D. h% a. H- wAsoR.Open
( j. `8 v4 Q' U) S7 T) U+ ^5 ^set AsoW=CreateObject("Adodb.Stream")
7 r; O, @5 ^9 q Q' u# d% yAsoW.Mode=3
* g* w% t7 |0 x$ h* n$ a7 p8 z7 w; N1 BAsoW.Type=1 3 }+ ^4 Y9 o" C' R
AsoW.Open
7 q+ b4 }2 K2 h( VAsoR.LoadFromFile(FlashFileName)
) m b. c0 u0 e; D" wOKed = true+ F8 ?7 T' C5 c' h D4 E5 O
dim filesize
( T' h# o8 R8 y* ?filesize = AsoR.size
5 j7 g- ]2 A s0 J, Fif filesize> ositionStart then
$ b( Z$ _ F$ Y while OKed
2 t7 Z- C m7 _( ] AsoR.Position = PositionStart; F0 t' o1 s3 D% |3 H
Tag = Bin2Str(AsoR.read(20))4 O8 L) i) [) u% R6 G
if instr(Tag,"0000000") >0 then, {) m: Y: ]& S/ U2 Y% ~ X, f/ u
PositionStart = PositionStart + 1. A; I1 r0 M" O0 Q4 @$ M% V! _
else! r+ m, U- r3 }
PositionStart = PositionStart + 20; g# l+ }! p; h2 K8 n9 C, Z
end if
) W; m3 X" M( x% P if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then' f, O# E" K. b0 u
OKed = false
) R+ h P& j/ l" }2 E: j; m- C end if
$ G4 b9 `" F3 |8 T 'if PositionStart > filesize then# y* r; l( e, [9 o. q. I |
' OKed = false3 T+ T- S5 ?7 K N1 i3 {7 Y7 M
'end if$ [: G$ H4 D; y
wend
/ ~- B+ p4 {9 q1 A1 `4 {else
: d M; Y. I1 J. M9 s msgbox "文件错误"
5 B+ l; @7 k$ t- Oend if
. Y! z# Y/ b, d9 ~/ _PositionStart = PositionStart + 16
- v7 B- A. J6 C2 u'msgbox PositionStart
7 o: {9 n& p) s' K1 U3 S5 c* S! G5 vAsoR.Position = PositionStart6 Z! r' l0 N1 ?
AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) * W) k( M8 g! E: w4 U' a' J
'新文件名
4 L; a: |/ d1 q$ z: E8 a$ L0 z5 ldim newFileName* V8 d9 G2 Z; O" `3 x$ c2 L; t
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"
' o! l5 t# B! I, H7 x8 OnewFileName = FlashFileName & ".swf" 1 r* n- Z$ t4 M! @, k
Set fso = CreateObject("Scripting.FileSystemObject"), D* i# @/ h8 [' i2 D6 W
If (fso.FileExists(newFileName)) Then$ l! X- Y/ o8 l! U, A
overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")
: h/ l% l. w9 N; Z( V if overwrite=6 then$ T Y+ Q, g' ~+ o# v
AsoW.SaveToFile newFileName, 2
; m- [" `- w4 e0 M3 C% S! X5 c else
( |9 ], f' E# S" Q0 l+ B6 R, Q msgbox "操作被取消",0,"exe2swf脚本"
9 g* ~+ S) e+ N9 y" W# A/ S end if" C( X* x8 o5 T B; s
else
0 I! h8 ?3 P# r+ i AsoW.SaveToFile newFileName, 1
/ I* k* C3 J$ Gend if + K" Y( I+ ?' O
AsoR.close- Z# ~) }% s# \) G( }- ^. K# w; |
set AsoR=nothing
6 [" g9 L& @* ?: R0 vAsoW.close7 \' r& I7 m4 L' x1 X4 E! V
set AsoW=nothing
* m- S H3 \8 s7 N0 i$ bFunction Bin2Str(Bin); {$ ?, M4 f6 \( O. l" A0 p( ^
Dim I, Str
9 A3 j" L( @$ J' @4 C For I=1 to LenB(Bin)
$ g1 s y7 \- y% K+ m8 I clow=MidB(Bin,I,1)
% {9 }. Z$ m7 r7 U if ASCB(clow)<128 then
$ t. r, `4 {, I8 i; k Str = Str & (ASCB(clow))3 p& V! ]5 w' }6 V5 z
else3 P" d% _0 W" z
I=I+1
( f, ]/ P& J) ^8 Q) n5 J if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow)). P9 H! \3 G; J
end if
% d" L; I' n7 _$ E: @" G Next
( G3 |6 ~* ~. w& U3 E Bin2Str = Str9 E+ H1 `7 I9 ]; A) N4 `
End Function
4 M& i/ z5 a) v
% Y8 w3 x) s5 j r* D& u |