DeviaRev2 Hook API:挂接到现有的过程Winapi调用中
Deviarev2 Hook API: Hook into existing process winapi calls?
我想使用deviare v2 api拦截来自测试应用程序的winapi调用。问题是钩子,系统调用处于相同的过程中,因此,呼叫未截获。
如果我为每个过程打开单独的进程,那么拦截将起作用。还有其他人有这种情况/问题吗?
问题是,我正在尝试将一些单元测试添加到代码的平静中,而不是修改现有的生产代码来包装/模拟所有系统调用,我认为我可以简单地拦截所有这些调用并按照我的意愿进行伪造。
实际上更容易在自己的过程中挂钩API(实际上,当您想在另一个过程中挂钩时,您都需要将其注入该过程,因此基本上是当您挂钩时您自己的过程您可以跳过该步骤)。您正在使用的库可能是一个错误。尝试Microsoft Detours或如果您愿意,请自己修补内存,实际上并不难,如果您是该主题的新手,则需要几个小时的工作。
您需要谨慎的是,某些C 编译器在某些情况下(我认为调试构建)会使用一些跳台或类似的东西,这可能会干扰挂钩过程。在这种情况下,您必须在挂钩时要格外小心-MS Detours可能会正确地做到这一点。如果这会影响您的成功,则可以尝试调试/发布构建。我的意思是要获得API的正确地址。如果Winapi的函数在dll中是这样的,则可以确保如果使用LoadLibrary和getProcaddress。
在旁注上,我认为API挂钩是避免嘲笑/固执进行测试的正确方法,尽管它应该起作用。
如果您对挂钩的工作方式更感兴趣,则可以在此处查看我的论文:http://lkm.fri.uni-lj.si/zoranb/zoranb/research/berdajs-bosnic spe 11.pdf <</p>
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- WinAPI挂钩鼠标
- 是否删除在对象构造过程中创建的对象
- 将执行、作业和WinAPI相乘
- 如何在鼠标挂钩过程中检测拖动
- 此测试()中发生了什么意外过程?为什么总是覆盖 ch[0 1 2..]?
- clang 插件:在编译过程中修改 AST
- 如何在桌面C++上使用 WinApi 画线
- WINAPI 注册应用程序重新启动时不清除打开的套接字
- Winapi:屏幕截图未显示在窗口中
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- Qt with WinAPI MouseProc
- 如何使变量从 x 到 y,然后从 y 返回到 x 并始终重复该过程
- 如何在"SUBSYSTEM:WINDOWS"下显示并输出到Windows(C++ WinApi)上的
- 在C++中调用 MS SQL 存储过程
- WinAPI 无法创建按钮
- 将 Win32/WinAPI 应用程序移植到 wxWidgets
- WinAPI 检查窗口是否具有常规标题栏
- 阻塞信号会导致升压过程不起作用
- DeviaRev2 Hook API:挂接到现有的过程Winapi调用中