gpt4 book ai didi

c - strstr 在内核空间中无法正常工作

转载 作者:行者123 更新时间:2023-11-30 19:40:45 26 4
gpt4 key购买 nike

如果进程名称是“System”,则不进行 DbgPrint。如果是任何其他进程,现在 DbgPrint 都可以,但由于某种原因,它没有像预期的那样工作。

我尝试过:if( strstr( ImageName, "系统") != NULL ) {

if( strncmp( ImageName, "系统", 6 ) != NULL ) {

if( RtlCompareMemory( ImageName, "系统", 长度 ) == 长度) {

我只希望它不是“系统”时打印

下面的代码不起作用:

int ThreadHooK( PEPROCESS Process, DWORD dw, HANDLE Handle, KPROCESSOR_MODE PreviousMode ){             
char *ImageName = (char*)(Process + 0x2e0);
char *System = "System";
if( PreviousMode == KernelMode ) {
if( strstr( ImageName, System ) == NULL ) {
DbgPrintEx( DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "[ThreadHooK]: Attempt To Close The Handle: [0x%016X] To A Process Opened By A Kernel Process : [%s]\n", Handle, (PUCHAR)Process + 0x2e0 );
}
}
return 1;
}

希望有人能解决这个问题

最佳答案

我需要更改这一行:

char *ImageName = (char*)(Process + 0x2e0);

对此:

char *ImageName = (char*)((PUCHAR)Process + 0x2e0);

关于c - strstr 在内核空间中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34975767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com