欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

火眼实验室恶意软件开源分析工具Flare-floss

程序员文章站 2022-04-06 23:13:13
许多恶意软件编写者都会通过混淆一个可执行文件的关键部分来躲避启发式的检测方法,而不是通过加强保护壳的方式。通常情况下,这些关键部分都是字符串以及用于配置域,文件以及感染的其它组件的资源。这些关...

许多恶意软件编写者都会通过混淆一个可执行文件的关键部分来躲避启发式的检测方法,而不是通过加强保护壳的方式。通常情况下,这些关键部分都是字符串以及用于配置域,文件以及感染的其它组件的资源。这些关键功能在静态分析过程中,使用strings.exe也得不到明文显示。

FireEye实验室字符串混淆解释器(FLOSS)采用了先进的静态分析技术,从恶意软件的二进制文件中自动反混淆字符串。你可以就像使用strings.exe一样来加强对未知二进制文件的基本静态分析。

FLOSS的理论知识在这里。

快速运行

正确使用FLOSS,要下载一个单独的可执行文件,地址:https://github.com/fireeye/flare-floss/releases

有关FLOSS的详细说明,可以参考这篇文档。

单独项目地址:

l Windows:这里

l Linux:这里

l OSX:这里

使用方法

从恶意软件中提取混淆字符串:

$ floss /path/to/malware/binary

获取更多的帮助/使用方法:

$ ./floss -h

使用FLOSS更详细的说明,参考这篇文章。

测试FLOSS更详细的说明,参考这篇文章。

样本输出

$ ~/env/bin/floss -a malware.bin

Static ASCII strings

Offset String

---------- -------------------------------------

0x0000004D !This program cannot be run in DOS mode.

0x00000083 _YY

0x000000D0 RichYY

0x000000F0 MdfQ

0x000001E0 .text

0x00000207 `.rdata

0x0000022F @.data

0x00000258 .idata

0x00000280 .didat

0x000002A8 .reloc

0x000005B6 U F

0x000005F1 ?;}

0x000006D4 A@;E

0x000006E4 _^[

0x000008E0 HttHt-H

0x0000099A '9U

0x00007020 WS2_32.dll

0x00007C4E FreeLibrary

0x00007C5C GetProcAddress

0x00007C6E LoadLibraryA

0x00007C7E GetModuleHandleA

0x00007C92 GetVersionExA

0x00007CA2 MultiByteToWideChar

0x00007CB8 WideCharToMultiByte

0x00007CCE Sleep

0x00007CD6 GetLastError

0x00007CE6 DeleteFileA

0x00007CF4 WriteFile

[..snip...]

Static UTF-16 strings

Offset String

---------- -------------------------------------

0x00007614 ,%d

Most likely decoding functions in: malware.bin

address: score:

---------- -------

0x0040102D 0.71000

0x0040101E 0.23000

0x00401046 0.23000

0x00401005 0.21000

0x0040100F 0.21000

0x00401014 0.21000

0x00401023 0.21000

0x004069BF 0.21000

0x00401041 0.21000

0x00406736 0.21000

FLOSS decoded 10 strings

Offset Called At String

---------- ---------- -------------------------------------

0xBFB3B4E8 0x0040595F WinSta0\Default

0xBFB3B4A0 0x0040472E Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings

0xBFB3B4A0 0x0040472E Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings

0xBFB3B4EC 0x0040472E ProxyEnable

0xBFB3B4A0 0x0040472E Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings

0xBFB3B4E0 0x0040472E ProxyServer

0xBFB3B4EC 0x0040472E ProxyEnable

0xBFB3B4A0 0x0040472E Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings

0xBFB3B4E0 0x0040472E ProxyServer

0xBFB3B4EC 0x0040472E ProxyEnable

[..snip...]

FLOSS extracted 81 stack strings

Function: Frame offset String:

---------- ------------ -------

0x00401005 0x001c WinSta0\Default

0x0040100f 0x0010 WinSta0\Default

0x0040100f 0x007f pVAD

0x0040100f 0x0034 '%s' executed.

0x0040100f 0x0038 ERR '%s' error[%d].

0x00401014 0x005c Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings

0x00401014 0x0010 ProxyEnable

0x00401014 0x001c ProxyServer

0x00401019 0x000c wininet.dll

0x00401019 0x001c InternetOpenA

0x00401019 0x0107 0\A4

0x00401019 0x00c8 InternetSetOptionA

0x00401019 0x0064 InternetConnectA

0x00401019 0x00f7 pVAInternetQueryOptionA

0x0040100a 0x0080 Mozilla/4.0 (compatible; MSIE 7.0; Win32)

0x0040100a 0x004c -ERR

0x0040100a 0x0020 FILE(%s) wrote(%d).

0x0040100a 0x0038 Invalid ojbect.

0x0040100a 0x0040 SetFilepoint error[%d].

0x0040100a 0x003c b64_ntop error[%d].

0x0040100a 0x0024 GetFileSize error[%d].

0x0040100a 0x0024 Creates file error[%d].

0x00401041 0x0047 pVAKCeID5Y/96QTJc1pzi0ZhEBqVG83OnXaL+oxsRdymHS4bFgl7UrWfP2v=wtjNukM

[..snip...]