该存储库包含 FireEye Labs 高级逆向工程 (FLARE) 团队使用的 IDA Pro 脚本和插件的集合。
要安装,请将此存储库中的插件目录的内容复制到 %PROGRAMFILES%IDAplugins 文件夹。
这里的 python 目录可以复制到您的 %PROGRAMFILES%IDApython 文件夹中,或者您可以修改 PYTHONPATH 环境变量以包含该目录。
shellcode_hashes_search_plugin.py IDA 插件实现了此处描述的哈希搜索:https://www.mandiant.com/blog/precalculated-string-hashes-reverse-engineering-shellcode/。
shellcode_hashes 目录包含用于为 shellcode_hash_search.py 脚本创建数据库的脚本以及提供的数据库。
struct_typer_plugin.py 插件实现此处描述的结构类型:https://www.mandiant.com/blog/applying-function-types-struction-fields-ida/
stackstrings_plugin.py 实现了此处描述的手动构造字符串的恢复:http://www.fireeye.com/blog/threat-research/2014/08/flare-ida-pro-script-series-automatic-recovery-of-恶意软件中的构造字符串.html
IDA Pro 的此脚本将 XML 文件中的 MSDN 信息添加到数据库中。有关此插件的信息可以在以下位置找到:https://www.fireeye.com/blog/threat-research/2014/09/flare-ida-pro-script-series-msdn-annotations-ida-pro-for-malware -analysis.html
包含以下功能:
TL;DR:在 IDA 中运行annotate_IDB_MSDN.py 。
所有文件(IDAPython 脚本、XML 解析器、MSDN 信息 XML 文件等)应位于 IDA Pro 可以访问的同一目录中。在 IDA 中使用文件 - 脚本文件... (ALT + F7) 打开annotate_IDB_MSDN.py 。单击“确定”后,该表单将允许您更改设置并注释 IDB 文件。
执行一次脚本后,也可以使用“查看 - 最近的脚本” (ALT + F9)。
该插件允许您指定或选择间接调用的函数类型,如下所述:https://www.fireeye.com/blog/threat-research/2015/04/flare_ida_pro_script.html
该脚本允许您轻松地从现有 IDB 数据库生成函数模式,然后将其转换为 FLIRT 签名,以帮助识别新文件中的类似函数。更多信息请访问:https://www.fireeye.com/blog/threat-research/2015/01/flare_ida_pro_script.html
该实用程序可以帮助您识别程序中使用的函数的静态参数。这最常用于提取字符串解码器函数的参数。示例用法可在
包含更多信息的博客文章位于:
https://www.fireeye.com/blog/threat-research/2015/11/flare_ida_pro_script.html
该脚本在选择器引用及其实现之间创建交叉引用,如目标 Mach-O 可执行文件的 Objective-C 运行时相关部分中所定义。它还修补选择器引用指针以指向其实现函数。通过实现实现和整个代码中引用其选择器的位置之间的平滑转换,使得 Objective-C 代码的分析变得更加容易。有用的 Objective-C 代码注释被添加到对 objc_msgSend 变体的每次调用中,以清楚地指示正在哪个类上调用哪个方法。
ironstrings.py
是一个 IDAPython 脚本,它使用代码模拟从恶意软件中恢复构造的字符串(堆栈字符串)。请参阅脚本的自述文件中的详细信息。
code_grafter.py
是一个 IDAPython 脚本,它将代码移植到 IDA 数据库以实现各种导入函数,并增加能够完全在 Bochs(或任何其他不为这些实现特殊处理的模拟工具)下执行解包器或解码器的可能性。功能)。这可以防止模拟执行到达VirtualAlloc
或lstrlenA
等函数时出现错误。