应用了 FLIRT 签名,IDA 显示引用但没有自动重命名?

逆向工程 艾达 调情签名 路亚
2021-06-16 09:28:15

所以,我有一个程序,我 99% 确定它正在使用 Lua,因为当我查看字符串引用时,我看到了这个:

Lua 版权版本

我知道在这个程序的某个地方他们静态链接了一个 Lua C 或类似的东西,所以我为 Lua 5.2.1 库做了一个快速的谷歌,我发现是一个指向 Lua 静态库的 Source Forge 的链接对于 5.2.1,所以我下载了它,打开了 IDA SDK,然后运行:

.\pcf.exe .\lua52.lib .\lua52.pat

返回:

...\lua52.lib: skipped 0, total 793

我理解它发现了 793 个签名或类似的东西,所以我跑了:

.\sigmake.exe .\lua52.pat .\lua52.pat

返回错误;

.\lua52.pat: modules/leaves: 767/793, COLLISIONS: 1
See the documentation to learn how to resolve collisions.

我认为这意味着我必须使用 -r 开关,所以我重新运行它

.\sigmake.exe -r .\lua52.pat .\lua52.sig

它没有产生错误并生成了 sig 文件,所以我把它放到了 IDA 的 sig 目录中,让它显示出来,所以当我去应用 IDA 中的 Lua 签名图像 它时,它显示出我所期望的,我把它添加到 IDA,它告诉我有参考证明引用,但我“确定” Lua 被重命名了吗?这是期待还是不期待?我知道这条线

sub_140856EE0(v1, (__int64)"field '%s' missing in date table", "year");

是 Lua 是因为当你用谷歌搜索中间字段时,它会使用 Lua 函数告诉它是一个 Lua。最后,我进行了重新分析,以确保它回顾了文件以对其进行一次检查。

我在这里错过了一些明显的东西吗?

1个回答

如果您使用与目标进程相同的架构,这可能会有所帮助......但这并不能完全解释为什么其他非 x64 FLIRT 签名不会重命名内容,即使窗口说它找到了 X refs