数据软件分析(一)——静态分析_麻吉叽的博客-爱代码爱编程
基于恶意科学的数据软件分析
将学习本书的过程作记录分享。
数据科学是一个不断增长的算法工具集合,可以让我们通过使用统计学、数学和巧妙的统计数据可视化技术来理解和预测数据。一般来说,数据科学有三个组成部分:机器学习、数据挖掘和数据可视化。
第一章 恶意软件静态分析基础
静态分析:是对程序文件的反汇编代码、图形图像、可打印字符串和其他磁盘资源进行分析,是一种不需要实际运行程序的逆向工程。
简单来说,就是仅仅通过看来分析程序文件。
1.1 windows可移植可执行文件(PE)
文件格式:
-
PE头:定义了程序的一般属性,如二进制代码、图像、压缩数据和其他程序属性。包括了时间戳字段(攻击者可能伪造,但有时候会忘记伪造)。
-
可选头:定义了PE文件中程序入口点的位置。即告诉了逆向工程师从哪里开始进行逆向工程。
-
节头:描述了PR文件中包含的数据节。
- .text节:可执行的x86代码节。(每个PE程序的节头至少包含一个)
- .idata节:导入节,包含导入地址表IAT。指出了程序所调用的库,很可能泄露恶意软件的高级功能。
- 数据节:包括.rsrc.、.data和.rdata等节,存储程序使用的鼠标光标图像、按钮图标、音频和其他媒体等。
-
.reloc节
1.2 用python的pefile解析PE文件格式
import pefile
pe = pefile.PE("ircbot.exe")
#打印 PE文件的各个节
for section in pe.sections:
print(section.Name)
1.3 检查恶意软件的图片
使用wrestool从二进制文件中提取图像
mkdir images
wrestool -x fakepdfmalware.exe -output=images
icotool -x -o images images/*.ico
先创建一个目录来保存所提取的图像,接着使用icotool提取并将Adobe中图像格式中所有资源转换到.png图形。
1.4检查恶意软件的字符串
strings 文件路径 | less
strings 文件名 > 文件.txt
将文件中所有最小长度为4字节的可打印字符串逐行打印到终端上。
可以使用 - n 选项更改最小字符串长度。
strings -n 10 文件名
总结
本章对静态恶意软件分析有了一定的认识,了解了定义Windows操作系统.exe和.dll文件的PE文件格式,还了解了如何使用python库pefile解析实际场景中的恶意软件ircbot.exe二进制文件。以及学习了图像分析和字符串分析等静态分析技术。