数学建模社区-数学中国

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

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

来源:lam's blog

; Y: K1 q; w; {* e. C3 [

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

/ {# B9 p* ~# W; C0 b

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

+ D! o( b9 ]+ D5 ]3 V

软件名称:exe2swf 3 }3 ^8 Q9 H# ?+ ?4 v0 Q适用系统:WIN 9x/ME/2000/NT $ d: `) c4 j) G5 V% [- G5 a) @文件大小:11K/ L* J& S; C; U* p5 q 文件说明:FLASH格式文件转换器为了防止有人在可执行的FLASH格式文件(.exe)中夹插木马,或者用flash图标的木马冒充flash文件,编写了一个简单的工具

, A' l3 ]8 t/ Q" T: f- i; |" P+ X$ d

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

3 J. f4 Z5 x' e

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

8 B/ E! H- {# Q- V* H7 f& T

作者:海娃

) H4 ~& V5 C) N: ?* f- k; C8 R

用法

/ `; o$ M9 ]2 v$ M$ e* R# j
    9 Q& w4 v4 n/ O" W# J
  1. 将下面代码存为 exe2swf.vbs & `+ q! X0 _' |4 D7 l$ b( W
  2. 将exe格式的flash拖放在此文件上,即可生成swf文件,
# M* u9 v1 K0 j2 f5 T: e* f8 `

+ u1 f6 y3 F. q! Q% Q 'haiwa@http://www.51windows.Net + ~+ u6 w+ H! T' b8 D'感谢jimbob提供帮助. 7 b6 o# U/ d5 T. J, udim AsoR,FlashFileName3 e/ o. R3 o6 Y+ a1 a/ l! U Set ArgObj = WScript.Arguments

4 S7 p/ A! O1 S' C9 i0 E8 T

dim PositionStart,OKed,Tag,EndSize 4 Q5 K, P. f" p4 LPositionStart = 920000'flash 4的播放器的大致字节数+ H1 I F3 r7 N9 |5 b! i0 R8 c EndSize = 8 'exe文件结尾字节数,其它版本可以设置为0 6 d" L+ W8 t- mFlashFileName = ArgObj(0)'传递路径

: O% y- }+ Z7 [

set AsoR=CreateObject("Adodb.Stream")8 X! g7 _% U# P, e2 z5 x0 L AsoR.Mode=3 * G( @5 P9 e& o' ^6 d2 aAsoR.Type=1 2 d/ O0 E) ^8 u0 DAsoR.Open 4 @# d4 D- Z4 F' [" ^5 n, Kset AsoW=CreateObject("Adodb.Stream") 7 m5 S% ]1 B. q, t% x8 AAsoW.Mode=3 7 i% W2 D+ i4 L5 C+ V AsoW.Type=1 , [% c9 F# r. g9 n* L3 VAsoW.Open & g+ n; ]1 G2 N$ H6 C; G5 fAsoR.LoadFromFile(FlashFileName)

( j$ }- W( @) \" G

OKed = true2 L) F4 y& |: _+ |+ ]+ A5 D; y dim filesize s5 c5 Q0 A6 [5 e6 F filesize = AsoR.size

) m3 Q8 c2 U/ z: m# Q! A# ^: |( t

if filesize>ositionStart then ( W" e& [9 d+ ?- S0 @6 g) Y( l, I while OKed9 Q6 _% ]( K( }6 S AsoR.Position = PositionStart 2 q7 K3 ?6 p( {. V( |& Z Tag = Bin2Str(AsoR.read(20)) ! r$ E) ~0 V0 `. G" t8 m if instr(Tag,"0000000") >0 then , H. i) W2 h+ z6 f8 D PositionStart = PositionStart + 1# z. }% _, S$ Q) k; q/ S) U, ~ else - `# x$ c8 O7 p& k- l PositionStart = PositionStart + 20 8 w+ i+ w* L7 S/ Y7 h- Q8 G/ J K end if 9 \3 }2 L$ n5 X- P# F' v' S if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then 9 p4 `8 j$ x0 T: _9 S OKed = false5 I7 e. B* J1 a+ G end if) B; c& C- |3 H+ B8 P 'if PositionStart > filesize then% _! _+ C. @) R" C4 Y ' OKed = false1 i w! |) ` n8 l 'end if % L1 E- q& k+ }# l& `) @ wend. x" i' W9 y4 F$ @& Q% Z% b else2 B& K$ D. R& V. n: v x msgbox "文件错误" 9 S( |& c) I7 f+ @end if / o0 z, ~& j) ?PositionStart = PositionStart + 16 ( F" d5 b2 }$ G6 K2 a' M4 i; D. ^'msgbox PositionStart, w$ e0 p& r, n% E, ^' E AsoR.Position = PositionStart ( P) L E9 l3 K5 m6 lAsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))

?+ E3 @4 k2 V# {

'新文件名 ! T2 a' u6 U+ m/ _* n$ H0 c2 \0 ndim newFileName! Y, w1 Z! J. q 'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf" ) W; _% m: c. v! L2 knewFileName = FlashFileName & ".swf"

9 Z4 I" i* n6 A. k9 m4 U) o( p

Set fso = CreateObject("Scripting.FileSystemObject"), \* [) g, o+ \. v6 I( k0 E If (fso.FileExists(newFileName)) Then$ N9 J% S4 n# ^3 \4 m overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本") 3 R1 `6 I4 @$ [$ Y; F$ Q if overwrite=6 then5 h" @3 `4 Q- s% p AsoW.SaveToFile newFileName, 2( o! N( }' ?7 ~* M- ?5 r) K else: `# _" ~0 _: t( r msgbox "操作被取消",0,"exe2swf脚本"% e* p+ N3 K) p! j' q end if % d! \6 ], J& u B) x9 Celse 8 R a6 c, o9 p/ \1 o AsoW.SaveToFile newFileName, 1 % d# Y; ~0 U! h _end if

: \* }2 v' N Y1 J+ e# J w

AsoR.close ; T+ J* l6 |8 U* x. t# Mset AsoR=nothing " Z/ S$ w; q+ c' }! H0 t/ u k7 bAsoW.close $ c. B# a/ d' O) o7 vset AsoW=nothing

: m! T2 p2 ?7 |+ Y5 J

Function Bin2Str(Bin) ) r; V) ^- o/ H% }* w l Dim I, Str & M# E' B% g6 I% ~$ M For I=1 to LenB(Bin). H4 `5 `2 ?1 E5 f5 l6 A clow=MidB(Bin,I,1) . Q5 Q: ?' J- w7 b9 O; W6 w* v& E if ASCB(clow)<128 then; c( x8 X* J) k Str = Str & (ASCB(clow)) m& C3 v* b: X) A else % O# {- q% [5 R, o/ q" S I=I+1 ! Y8 g5 N; ?/ ^' i if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))% Z$ E' c2 I F. K/ w5 w) U end if. g! s c, k5 c) ^' @ ^ Next 9 l. D9 I* F* ^ Bin2Str = Str - h% M3 H$ s3 `& `End Function

4 |/ \8 G' D1 ?

$ _+ L' `+ S# l8 }& 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