我一直在寻找一些在Windows上实时获取系统调用的方法。我已经在stackoverflow和其他地方查看了几个帖子但是找不到任何我能够遵循的简单方法。我看过procmon但它的输出非常不稳定。两个系统上的相同二进制文件生成了不同数量的条目。也许我缺乏做这些事情的必备知识。欢迎任何帮助/推荐。
我之前看过这些链接:
此致
答案 0 :(得分:0)
根据您使用的Windows版本,您的问题的答案可能是Windows事件跟踪(ETW),它可以执行系统调用[[{3}}]
答案 1 :(得分:0)
如果您对采样方法感到满意,那么您可以试试这个:
typedef struct _THREAD_LAST_SYSCALL_INFORMATION
{
PVOID FirstArgument;
USHORT SystemCallNumber;
} THREAD_LAST_SYSCALL_INFORMATION, *PTHREAD_LAST_SYSCALL_INFORMATION;
THREAD_LAST_SYSCALL_INFORMATION lastSystemCall;
NtQueryInformationThread(
hThread,
ThreadLastSystemCall,
&lastSystemCall,
sizeof(THREAD_LAST_SYSCALL_INFORMATION),
NULL
);
其中ThreadLastSystemCall = 21