在内核级别loggingWindows Syscalls

Windows Syscall从内核login

你好。 我正在尝试loggingWindows 7中调用的特定系统调用(win32k)。我已经尝试了几种方法。 我尝试的第一件事是drstrace 。 这是我需要的输出的确切types(函数名称,参数和返回值),但不是所有的系统调用都被logging下来。 我不是100%确定为什么会发生这种情况,但像NtGdiSettypes的系统调用一次使用NtGdiFlush调用,所以这些系统调用不能在用户级捕获。

接下来,我尝试了logman和xperf,这些似乎logging了那些函数drstrace不能,但他们不解决系统调用名称(实际上这并不是什么大不了的),他们不logging参数。 而且它也logging了系统调用的返回值,但是它不匹配返回值来自哪个调用,这是一个大问题。

我曾经想过构build一个在内核级别挂钩函数的驱动程序,但是我从来没有开发过一个驱动程序,但是效果并不好。

所以我想问问,如果已经有可以做到这一点的程序,或者我如何build立一个可以logging我想要的驱动程序?