|
来源:lam's blog 7 Z2 |1 z" q, L- @# B
最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的. ) R; X3 `$ s2 s9 a
结果在安天CERT小组 看到了这个: " X: y% ^9 ~+ _2 n7 f, p @- q
软件名称:exe2swf5 B; D& e+ x; m
适用系统:WIN 9x/ME/2000/NT
/ K5 B) X% H! w* T0 W% `3 @8 r文件大小:11K$ e, I/ f I4 B- p& H$ w/ c
文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具。
1 j! e3 R1 |5 u2 H, x* [4 u下载:http://soft.hackbase.com/37/20050319/6389.html
- W( o4 M# j5 q8 m. _( e4 a9 T哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码
5 D: C4 h h9 c作者:海娃 7 M- `1 ~' Z% p: @& |
用法:
6 f a5 H0 @* X3 G- Y) N7 C" S9 G( C
- 将下面代码存为 exe2swf.vbs
G8 z4 Z5 B/ M% w0 I6 @
- 将exe格式的flash拖放在此文件上,即可生成swf文件,
: f0 z: \# N! n G
; y& U5 J1 B; X
'haiwa@http://www.51windows.Net
* `/ n8 l( z$ _. T& o'感谢jimbob提供帮助.# T9 O, X/ ` \, Q1 ]; A
dim AsoR,FlashFileName
$ E& S( ]+ d) X5 v4 F" qSet ArgObj = WScript.Arguments . y* o2 T% n$ v# Z2 @3 V
dim PositionStart,OKed,Tag,EndSize( W- M( x* X& j. F$ \5 L
PositionStart = 920000'flash 4的播放器的大致字节数
+ Z/ G# A- `* Z. \: P) q" a$ \EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0) X% U2 a0 X& f4 a
FlashFileName = ArgObj(0)'传递路径
$ [, U1 ]$ v" Mset AsoR=CreateObject("Adodb.Stream")- l1 Q% d/ ~* X0 n: F% A
AsoR.Mode=3
' x6 R7 _- L5 N- n% b' g: p& QAsoR.Type=1 6 w! H% G J2 _) N F; F0 M
AsoR.Open
# M2 v( j8 i3 S& K3 Gset AsoW=CreateObject("Adodb.Stream")$ S( O. ~& j, P
AsoW.Mode=3 ' g: ]. N1 i7 q$ s* @
AsoW.Type=1
7 m z7 c4 u y9 ^7 H `AsoW.Open; V" W4 G) c2 q2 P
AsoR.LoadFromFile(FlashFileName) ! ^ T M7 B! X/ z5 a k$ T* X
OKed = true) x1 ]- Q# M7 o. X- [+ g
dim filesize- |8 {/ ~: o2 m7 [6 h: L0 J: v
filesize = AsoR.size
. a3 v$ ~( r! a$ z/ cif filesize> ositionStart then
* W) {( U: t( g8 t) a1 e @ while OKed% T6 ]1 }( K, y! X6 I
AsoR.Position = PositionStart- a/ T4 ^' D5 U5 ?- i
Tag = Bin2Str(AsoR.read(20))
Y, ]! R( K" u! T if instr(Tag,"0000000") >0 then
0 \% U' W! j% h/ h8 ^2 f PositionStart = PositionStart + 1+ `" r; k) g( ~+ H
else. g- h- p- K5 X. ^4 F6 s
PositionStart = PositionStart + 20
; c8 y/ `. u( Z" t/ i end if
# D) ~5 u3 }1 j5 X& ?6 a if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
! x: R6 K% g4 u5 U+ f3 n OKed = false
: v6 e* G5 y6 _- p end if
5 B v+ Y! d2 i4 F! | 'if PositionStart > filesize then
# y9 ?# \3 @/ s' {4 T ' OKed = false
& I; s' p- n" F- X& s! V: n 'end if! f- }/ d5 z6 n5 q# \$ X3 }
wend
9 q% s; j" v5 L" k! @) _else/ m6 x5 y, z) u: e1 w, {6 t5 v- `+ T
msgbox "文件错误"# r1 ~; h+ O5 v" z1 X; L
end if/ g. p7 D; }; H4 T; C$ \7 ~, S
PositionStart = PositionStart + 16
$ l0 r0 l4 }4 h! A( r" w& ?0 e'msgbox PositionStart; l. Q- h& { t; L% p1 {: \3 M c
AsoR.Position = PositionStart
- ]: v [- B2 C, w4 H- [1 ]AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize)) ! M/ Z/ K/ c9 K# z0 k1 D, e# A' Z
'新文件名; ^0 a, V& h& g. L0 h( J- U; o: e
dim newFileName7 L6 j5 O$ M! N2 _) }* c6 @
'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf". W S8 l; B: }$ Z4 X8 v5 Q, U
newFileName = FlashFileName & ".swf"
' f! E8 ^# i- T+ ]Set fso = CreateObject("Scripting.FileSystemObject")% _ q( O$ C9 ]7 h% z, \* ]
If (fso.FileExists(newFileName)) Then
% y, b. A' b1 I( o& F# ?! K& O overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本"), F) x/ v0 M6 ?8 `& p- O0 F: v
if overwrite=6 then* U% a# \- P# }9 q$ t; n
AsoW.SaveToFile newFileName, 2
2 U( ]/ M5 O0 P& S% X5 V. q else
* r" L# C0 M# e: Y! B N" q msgbox "操作被取消",0,"exe2swf脚本"7 z9 ~: X; K" I
end if
0 @, c0 G( c1 |: aelse8 |: g% w3 U, f! D9 P
AsoW.SaveToFile newFileName, 1
, E6 |, w: V5 a9 i1 H$ h0 o1 h, O qend if
0 x# S) }. j/ Q: P5 @: i+ E* OAsoR.close/ p' v9 H: d, n- k4 Y, v
set AsoR=nothing
' Y" p5 Z- i' f( h0 lAsoW.close
9 C8 i4 M* U2 Y: s% y. uset AsoW=nothing
" S9 A+ ]( x8 K1 J4 rFunction Bin2Str(Bin)
* Y0 f4 B9 ?0 ^* W, d% x. P Dim I, Str
1 P1 {1 @* z1 F# X For I=1 to LenB(Bin)* }9 X; O2 V. u; X
clow=MidB(Bin,I,1)
' Z; Q8 L. w+ i5 h if ASCB(clow)<128 then
5 k) v3 A; Q& V% Z: x Str = Str & (ASCB(clow))
! [' j; l0 A" }& S! d else
/ `: l7 N; `& J( w0 R I=I+1
8 k, F( m( h, ?+ p if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow)). v; U! O/ P( d, G
end if
+ g$ R: W. o! g. T S Next * p" _% y+ r5 {: C% r0 X# r. F2 x& b
Bin2Str = Str
O* l, W* I5 A2 g" B5 dEnd Function
1 }* L- Y2 S7 Y" x& \$ z: Z% O$ A8 p# e, v# E5 j, G
|