挂接ntdll.dll调用时出现问题
Problem with hooking ntdll.dll calls
我目前正在通过dll注入挂接ntdll.dll调用。首先,我通过CreateRemoteThread()
在现有进程中创建线程,然后通过LoadLibrary
加载dll,最后在PROCESS_ATTACH
上挂起调用。
注入工作正常,但我想记录所有注册表和文件系统查询。问题是它不能正常工作。
我决定通过PasteBin发布代码,因为这篇文章相当大。以下是链接:http://pastebin.com/39r4Me6B
我试图挂接ZwOpenKey
,然后记录关键内容,然后通过指针启动"true"函数。函数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中这样做,这样我就不必在类型铸造之类的事情上太麻烦了。希望这能有所帮助。
相关文章:
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 模板类转换问题 - 无法推断调用的函数
- Malloc 在使用线程并行化 SSH 调用时存在问题
- 调用函数时出现问题.C++
- 将值推送到 getter 函数调用的列表中时出现问题
- 在内联程序集中定义函数和从 C++ 调用时出现问题
- 在C++中实现类似 python "map"函数的问题:调用类成员函数
- 问题: 从 MFC 调用 C# 未托管 COM C++
- 使用另一个函数调用一个函数(都在类中)时出现问题.没有错误代码C++
- 关于C++从派生类调用在基类中实现的虚拟函数的问题
- 从 Qt 中的信号调用成员函数的问题
- 在抛出 'std::invalid_argument' 的实例后终止调用 what(): stoi (找不到问题所在)
- 我正在尝试解决调用没有匹配函数的问题
- C++程序问题:抛出'std::invalid_argument'实例后终止调用
- 调用 Parse int 函数时编译 parse 整数程序时出现问题
- 编译问题 C++ 同时,尝试通过调用另一个对象中的成员函数来创建 std:: 线程
- 调用模板函数的问题"No matching function for call"参数:迭代器、对象函数
- 头文件会导致函数调用后原始数组出现问题
- OVerload函数调用问题