DeviaRev2 Hook API:挂接到现有的过程Winapi调用中

Deviarev2 Hook API: Hook into existing process winapi calls?

本文关键字:过程 Winapi 调用 API Hook DeviaRev2      更新时间:2023-10-16

我想使用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>