gpt4 book ai didi

c++ - Hook ntdll.dll 调用的问题

转载 作者:可可西里 更新时间:2023-11-01 12:04:32 30 4
gpt4 key购买 nike

我目前正致力于通过 dll 注入(inject) Hook ntdll.dll 调用。首先,我通过 CreateRemoteThread() 在现有进程中创建线程然后我通过 LoadLibrary 加载我的 dll最后 Hook PROCESS_ATTACH .

注入(inject)工作正常,但我想记录所有注册表和文件系统查询。问题是它无法正常工作。

我决定通过 PasteBin 发布代码,因为代码量很大。链接在这里: http://pastebin.com/39r4Me6B

我正在尝试 Hook ZwOpenKey ,然后记录关键内容,然后通过指针启动“真实”功能。函数NOpenKey被执行,但进程停止,没有任何错误。

有人看到任何问题吗?

最佳答案

如果你使用 OllyDbg,ZwOpenKey 以 5 个字节开始 MOV EAX, 77

您可以像这样覆盖这些字节 JMP _myZwOpenKey 然后从那里您可以对堆栈上的值执行任何操作,恢复所有寄存器然后执行 JMP 7C90D5B5 这是ZwOpenKey 的地址 + 5 个字节。

CPU Disasm
Address Hex dump Command Comments
7C90D5AF 90 NOP
7C90D5B0 /$ B8 77000000 MOV EAX,77 ; ntdll.ZwOpenKey(guessed rg1,Arg2,Arg3)
7C90D5B5 |. BA 0003FE7F MOV EDX,7FFE0300
7C90D5BA |. FF12 CALL DWORD PTR DS:[EDX]
7C90D5BC \. C2 0C00 RETN 0C

我通常以这种方式在 Assembly 中执行这些操作,这样我就不必在类型转换和所有其他事情上搞砸了。希望这会有所帮助。

关于c++ - Hook ntdll.dll 调用的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6305516/

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