我目前正在 IDA 中探索一些由某些功能的源代码辅助的二进制文件。使用字符串很容易找到一些函数,而其他函数则不太容易找到。
由于各种原因,我无法访问编译器。这意味着我不能使用明显的解决方案来编译源代码并使用 IDB2PAT 或 rizzo 之类的东西创建签名。
如何在不编译的情况下从源创建函数签名?
我目前正在 IDA 中探索一些由某些功能的源代码辅助的二进制文件。使用字符串很容易找到一些函数,而其他函数则不太容易找到。
由于各种原因,我无法访问编译器。这意味着我不能使用明显的解决方案来编译源代码并使用 IDB2PAT 或 rizzo 之类的东西创建签名。
如何在不编译的情况下从源创建函数签名?
为 IDA 创建签名文件是一个两步过程:
IDA 的FLAIR 工具集附带的工具允许您为 OMF、COFF、ELF、PSX 和 Trimedia 库自动生成 PAT 文件。该工具集还包括 PAT-to-SIG 编译器。
即使您没有库二进制文件(因此无法自动生成 PAT 文件),鉴于 PAT 文件格式记录在FLAIR 工具集的 pat.txt 文件中,您也可以编写自己的工具生成 PAT 文件,甚至手动创建 PAT 文件(然后编译它以创建您的签名文件)。
但是,由于模式基于编译的字节,您仍然需要二进制形式的库代码,因此您仍然可以使用 IDB2PAT 或 IDB2SIG。换句话说,如果您无法编译源代码并且无法(或不想)识别 IDB 中的库函数,那么您将无法为此创建传统的 IDA 签名文件库代码。