数学建模社区-数学中国

标题: 一个很有趣的小工具:Exe2swf [打印本页]

作者: 韩冰    时间: 2005-3-20 13:46
标题: 一个很有趣的小工具:Exe2swf

来源:lam's blog

, ^5 X. S' ~* u( Y K- V" e

最近好象又开始流行播放器里插木马了,我于是在网上转了转,看有没有什么好东西能预防的.

2 D: J0 V; C6 Y" C' b

结果在安天CERT小组 看到了这个:

! d3 t4 l8 Z% F9 W4 F! `

软件名称:exe2swf 1 P# ~- M3 k# d0 F2 W2 E8 e适用系统:WIN 9x/ME/2000/NT ' f8 v( }: n* N3 h文件大小:11K8 |# e3 |6 K2 J8 B$ t% |' d0 q 文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具

, D( s( K8 ~3 L+ }: x) G

下载:http://soft.hackbase.com/37/20050319/6389.html

; Q, C5 {/ H5 r5 y" p% Z" I

哈,但是还有还想不到的呢,我找到了一段可以实验这个功能的代码

: [" v8 J- E, f& D8 a3 R8 N

作者:海娃

: e/ R/ m! z3 r7 D* O

用法

6 v, Y5 t f' f! \7 N9 x
    * v ?8 o* a/ P) D
  1. 将下面代码存为 exe2swf.vbs + @% x! S0 ]. U7 ]4 D* Q# E
  2. 将exe格式的flash拖放在此文件上,即可生成swf文件,
& K& g: m ?* S5 n$ E) }$ f

9 A- O" S4 _' q( M8 w3 E'haiwa@http://www.51windows.Net . S+ Q! P$ } u# s! @+ m'感谢jimbob提供帮助. 2 d1 y- H" u* ^4 R& ~- S, s9 f+ Edim AsoR,FlashFileName3 ]$ a& {- k: [! o8 p. v7 e Set ArgObj = WScript.Arguments

: t# [2 R: K0 r4 M( i2 u+ T! R

dim PositionStart,OKed,Tag,EndSize T7 \! B+ l0 K4 k. L PositionStart = 920000'flash 4的播放器的大致字节数& v3 `: I) _% ^/ |3 G3 G m8 @3 C EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0 2 L1 E. h8 ?6 a/ r: iFlashFileName = ArgObj(0)'传递路径

3 e3 c3 t$ R/ m* r8 E

set AsoR=CreateObject("Adodb.Stream")' [2 J, K9 }3 O AsoR.Mode=3 4 U9 w5 ~' Q9 u7 w! @# fAsoR.Type=1 $ G5 f% N1 V% ]: f: p$ R: K) fAsoR.Open 9 L1 i" A& t; f8 Z# E9 l/ ~5 b9 a5 D9 a set AsoW=CreateObject("Adodb.Stream")3 @+ H4 r) Q9 e6 {. y AsoW.Mode=3 ; {5 u0 F0 d* VAsoW.Type=1 8 O" V2 [) Z2 W/ j& L4 n: T3 ? AsoW.Open# c2 _4 q* b6 m8 ?# e5 q" }2 C AsoR.LoadFromFile(FlashFileName)

- U# S1 P, A5 m3 a# J& R6 g$ G

OKed = true + N! f, x+ m# Z6 q; U& F' n- odim filesize ; {1 w' z! L7 u* Q5 Lfilesize = AsoR.size

. c" C1 J. q6 r: M

if filesize>ositionStart then& P5 i. d, g" D) I; h+ H while OKed3 Y! K2 S* W" G6 Y. G& U AsoR.Position = PositionStart2 f* U f6 d8 z) O Tag = Bin2Str(AsoR.read(20))$ [. ]- D( E [& z if instr(Tag,"0000000") >0 then 7 k6 w4 o/ j3 X) B5 T t) m PositionStart = PositionStart + 1- h; F2 R3 [; ~ else & I' e4 T9 n, |; P2 c b4 ?' e; D PositionStart = PositionStart + 201 x1 }6 u+ X9 M end if2 Q4 l& r' E3 x: _ if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then . j& R8 b: G! G# L OKed = false 3 j6 o) r1 Q! z) ] end if 8 V; ?9 H3 v1 p9 x 'if PositionStart > filesize then& h$ z& k: ]5 _+ B: w' A+ j ' OKed = false ) [' H( }2 c2 P, l* Q 'end if 2 D8 M) Y; m# I wend9 V2 p- ~- [ b- q3 r else) N# ^1 R5 N; Z* |+ f+ {, e" v msgbox "文件错误": }/ _' d* V# L9 Q; J+ N2 r' L end if) L* k$ ]5 @; c( ]# H6 Y# ` ]: Q3 ^ PositionStart = PositionStart + 16. G! S! E( q9 w5 J* w5 ~: I 'msgbox PositionStart% c) H; Q6 |( c AsoR.Position = PositionStart q9 N3 `, Z3 \% z9 O- fAsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))

" H$ `. S) m5 N

'新文件名& X3 ]) w: q8 U( s dim newFileName! ]$ Z& {9 c1 Z% d& _ 'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf" $ v+ _9 q: [6 e& NnewFileName = FlashFileName & ".swf"

0 U+ d4 e5 P' h, a4 Q2 v

Set fso = CreateObject("Scripting.FileSystemObject")# n5 q0 o2 w% i! o If (fso.FileExists(newFileName)) Then + L; U4 e0 w1 l; m2 i% c8 } overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本") . B k* ~6 X1 h3 U0 u5 C& z) b if overwrite=6 then/ X( T; M3 @; _ m9 a AsoW.SaveToFile newFileName, 2 " I0 B( {- x/ O% ^7 U f else G ?: {; h% t msgbox "操作被取消",0,"exe2swf脚本"2 E; ]6 h& r8 |; K+ ~% z end if; N, F" |6 X, u' L* \9 A: s else / R: v1 S. o; v" n AsoW.SaveToFile newFileName, 19 c3 a0 y; I* B) W5 e end if

$ U; _. ~" E# A

AsoR.close * M3 U9 {/ s0 n& C* Q3 g# l7 |set AsoR=nothing# Z/ c1 d7 _9 o% k8 a, O( h AsoW.close " V2 I* {! n. M! `( F8 F; D( [set AsoW=nothing

- n" A0 J, ^" l. P' U4 T

Function Bin2Str(Bin) + i3 Q: l M4 w M, m1 X0 d. l Dim I, Str; Y7 o6 K6 r; ] Y For I=1 to LenB(Bin). r' W" p, I i' b% [0 v: C clow=MidB(Bin,I,1)" d. H% A9 Y5 ]! R if ASCB(clow)<128 then) T* l, i7 ]9 Z* x6 ?$ }! X# T/ H Str = Str & (ASCB(clow)) d x5 Z1 ?4 h$ {3 W8 D else8 O5 B& b1 R, l- L _! [ I=I+1 3 K1 k2 D/ l+ x+ Y/ F if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow)) & P& ~3 h7 @/ o5 Y/ V3 k end if/ G- `& U' Q$ T# G& d k' h* q Next ( U/ |" G1 S8 G5 f* s7 o. x4 k Bin2Str = Str 5 B7 O1 a5 s/ u7 d# f' BEnd Function

/ f6 _) k/ ^, V) _/ X

5 m8 ?# k; v7 G/ x; `


作者: 540982016044    时间: 2010-1-17 18:13
从哪里开始啊,麻烦给个分割线吧,谢谢
作者: 小旋风假    时间: 2010-1-22 20:04
是呀,分不清呀…………………………
作者: 413009449    时间: 2011-9-16 21:59
不知道有什么用
作者: lynli    时间: 2012-2-1 18:57





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5