无法反汇编导出的函数

逆向工程 艾达 拆卸 dll 职能 图书馆
2021-06-18 19:20:08

我想从 Kernel32.dll 反汇编一个函数以查看它的作用,但是我尝试的每个函数在反编译器中都是这样的:

Function:
jmp ds:Function_0

功能在哪里?Function_0 似乎是一些随机的双字值。

这发生在我分别从 systemwow64 和 system32 获得的 32 位和 64 位版本的 kernel32.dll 上。

如何反汇编由 kernel32 导出的函数?

2个回答

并非对于 kernel32.dll 中的所有函数都是如此,而是对于从其他 dll 导入的特定函数而言。你必须找出函数是从哪里导入的,然后查看所需dll的反汇编。

您的反汇编程序可能会向您显示函数的导入位置,kernel32.dll 从 system32 文件夹中的 api-ms-*.dlls 导入了许多函数。PE 文件包含一个导入表,其中列出了所有导入的函数(请参阅文档

大多数基本功能都可以在用 C 编写ReactOS源代码中看到。大部分基本 API 自从 XP 以来没有改变,所以你可以使用它来获得更好的画面。顺便说一句,您需要将 .dll 从 system32 中复制出来,然后在 IDA 中打开副本,因为它被定向到 syswow64,所以它仍然是 32 位。您还需要导入 .pdb 符号——当您在 IDA 中打开 kernel32.dll 时,将出现一个弹出窗口,询问您是否要从 msft 符号服务器下载 kernel32.pdb。如果这不起作用,请使用 7.5 版(存在裂缝)