【发布时间】:2021-11-24 13:19:13
【问题描述】:
我在 ghidra 中反编译了一个 .so 文件,发现了一行代码:
puVar24 = (ulong *)(pbVar12 + 0x10);
pbVar12 类型:字节 *
0x10 类型:int
那么如果我们可以在 python 中将 byte* 与 int 连接起来呢?
【问题讨论】:
-
“连接”是什么意思;你的意思是添加? (数字也不能在 Python 中“连接”;Python 也没有 byte* 类型..)
-
我的意思是代码中的 '+' (puVar24 = (ulong *)(pbVar12 + 0x10);)
-
地址算术。它说“从 pbVar12 获取地址 16 个字节并将其存储在 puVar24 中”。由于 Python 没有指针,因此无法将其转换为 Python 代码。
-
@TimRoberts 哦,谢谢!所以我们不能在 python 中实现这个?
-
您无法执行该指令。一般来说,将 C 转换为 Python 是很棘手的,因为 C 应用程序倾向于使用原始内存和操作指针,而这在 Python 中是不存在的。您需要弄清楚代码的作用,而不是查看每个语句。
标签: python c++ reverse-engineering ghidra