我只是在github上搜索ReactOS源代码,在ntdll中找不到系统调用存根。这是如何实施的?我可以看到SharedUserData->SystemCall
被设置为KiIntSystemCall
/KiFastSystemCall
但我无法追踪它的任何使用或调用存根的实际位置。我期待在构建 ntdll 时组装和链接的 asm 文件中看到它们的大列表。
问问题
93 次
1 回答
3
如果您仔细查看 ReactOS 的 ntdll 的 CMakeFiles.txt,您会注意到它与一个名为“ntdllsys”的静态库链接。通过代码查看可以看出,这个“ntdllsys”库的构建规则是在 ReactOS 的 ntoskrnl CMakeFiles.txt 文件中定义的。进一步看,这个库的唯一源文件是一个名为“ntdll.S”的预处理程序集文件,它包括执行魔术的帮助头文件(“syscalls.inc”用于特定于平台的程序集帮助程序,“sysfuncs.h” " 用于系统调用列表)。这个想法是自动生成实际的存根。
于 2020-05-13T01:29:34.537 回答