所以,我有一个程序,我 99% 确定它正在使用 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 被重命名了吗?这是期待还是不期待?我知道这条线
sub_140856EE0(v1, (__int64)"field '%s' missing in date table", "year");
是 Lua 是因为当你用谷歌搜索中间字段时,它会使用 Lua 函数告诉它是一个 Lua。最后,我进行了重新分析,以确保它回顾了文件以对其进行一次检查。
我在这里错过了一些明显的东西吗?
