阅读:1693回复:4
REGMON 在2003系统下的怪问题。
我在2003系统下把REGMON FOR NT 的SOURCE编译成功,没蓝平。
但是只有这几个函数被HOOK了,只有 zwQueryValue,zwQueryKey,zwEnumerateValue 几个函数有返回信息(在 REGMON.LOG 文件里面),而 zwCreateKey 等函数没留下任何记录,应该是HOOK失败了。用网上下的 REGMON6 BIN CODE 测试,有 zwOpenKey 等函数的记录信息。 |
|
沙发#
发布于:2005-04-13 09:51
用SoftIce看一下
|
|
|
板凳#
发布于:2005-04-13 17:06
现在HOOK都没问题了,但是用 zwCreateKey 不管用。
相关代码如下: NTSTATUS MakeMyKey () { NTSTATUS status; // Status of various calls ULONG disposition; // Used in ZwCreateFile WCHAR uPath[]=L\"\\\\\\\\REGISTRY\\\\MACHINE\\\\SOFTWARE\\\\AAA\"; WCHAR wRegDatPath[]=L\"C:\\\\REGMON.DAT\"; UNICODE_STRING uRegistryPath; UNICODE_STRING uRegDatPath; OBJECT_ATTRIBUTES obj; HANDLE hKey; OBJECT_ATTRIBUTES HiveFile; PWSTR SubkeyName; LogRecord( \"%s\\tMakeMyKey\\t%s\\t%s\",\"My\",uPath,\"1\"); RtlInitUnicodeString(&uRegistryPath,uPath); InitializeObjectAttributes(&obj,&uRegistryPath,OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, NULL, NULL ); status = ZwCreateKey(&hKey,KEY_WRITE,&obj,0,NULL,REG_OPTION_VOLATILE,&disposition); if (NT_SUCCESS(status)) { LogRecord( \"%s\\tMakeMyKey\\t%s\\t%s\",\"MY \",uPath,\"2\"); ZwClose(hKey); SubkeyName = wRegDatPath; RtlInitUnicodeString(&uRegDatPath,SubkeyName); InitializeObjectAttributes(&HiveFile,&uRegDatPath,OBJ_CASE_INSENSITIVE, NULL, NULL ); status = ZwLoadKey(&obj,&HiveFile); LogRecord( \"%s\\tMakeMyKey\\t%s\\t%s\",\"MY \",uPath,\"3\"); }else LogRecord( \"%s\\tMakeMyKey\\t%s\\t%s\",\"MY \",uPath,\"Faile\"); return(status); } 每次都是Faile:( |
|
地板#
发布于:2005-04-14 07:54
自己解决了,谢谢 bmyyyud 老大。
|
|
地下室#
发布于:2005-04-14 08:06
说一说呀,为什么?
|
|
|