detours

    0热度

    1回答

    我试图使用微软的弯路进行基本挂钩。我的程序能够成功运行CreateProcessWithDllEx并注入一个dll。但是,我似乎无法恢复实际的挂钩程序。我正在使用记事本进行测试,并且可以看到notepad.exe在我的进程列表中运行,但记事本窗口实际上并未出现。 我的DLL如下: #undef UNICODE #include <cstdio> #include <windows.h> #i

    0热度

    1回答

    我想使用Deviare V2 API拦截来自测试应用程序的winapi调用。问题是钩子和系统调用处于相同的过程中,因此调用不会被拦截。 如果我为他们每个人打开单独的进程,那么拦截将起作用。其他人有没有这种情况/问题? 事情是我试图添加一些单元测试代码的和平,而不是修改现有的生产代码来包装/模拟所有系统调用我想我可以简单地拦截所有这些调用,并假装他们,因为我希望。

    1热度

    2回答

    我有一个应用程序,它向文件写入一些文本数据。 我想要做的是钩住写作过程。我迷上了MS Detours,CreateFile,WriteFile和WriteFileEx函数。 CreateFile会正确捕获这些文本文件的创建/打开,但WriteFile的钩子不会。它捕获许多其他的东西,但不是这些。挂钩工作正常。我检查过他们。 而且进程监视器显示了这些写操作为WriteFile的操作(ADV名IRP_

    1热度

    1回答

    我最近一直在研究绕行功能(只在Linux中),到目前为止我已经取得了巨大的成功。直到找到this,我才开发自己的绕路班。我对代码进行了现代化处理,并将其转换为C++(作为课程的一部分)。该代码就像任何其他的绕行实现一样,它用JMP将原始函数地址替换为我自己指定的“钩子”函数。它还为原始功能创建了一个“蹦床”。 一切都完美无瑕,但我想做一个简单的调整。我使用纯C++编程,我没有使用全局函数,所有东西

    0热度

    2回答

    我绕过LoadLibraryA,为了阻止函数被调用到我的应用程序中。它是为了阻止'注入'。如果你从未见过这些,请参考着名的CDetour图书馆。 它挂钩了加载库函数,甚至成功返回,也阻止未知的dll被加载到内存中。有小费吗? bool (__stdcall* LoadLibraryA) (LPCSTR); bool LoadLibraryADetoured(LPCSTR szMsg) {

    6热度

    1回答

    我有一个弯路问题。众所周知,Detours只能在5个字节的空间中移动(即'jmp'调用和4个字节的地址)。正因为如此,在一个类(方法)中不可能有'钩子'函数,所以你不能提供'this'指针,因为没有足够的空间(here's这个问题更加彻底的解释)。所以我一整天都在为解决方案进行头脑风暴,现在我想要关于这个问题的想法,所以我不开始一个3-5天的项目,不知道它是否可行。我想让'钩子'函数成为类方法,我

    1热度

    1回答

    我有一个C++测试项目,有一堆存根函数具有相同的实现。这些存根意味着在运行时使用Windows Detours进行“替换”。问题是,在发布模式下,编译器将所有这些存根指向相同的实现。为了说明这一点,请考虑以下代码: #include <iostream> using namespace std; void A() { cout << "stub" << endl; } void B() {

    0热度

    3回答

    我一直在编程最近的弯路和所有的它。我绕道了很多不同的功能; thiscall,stdcall,cdecl,虚函数等。但有一件事我没有管理(这可能甚至不可能),那就是钩住基类虚函数。例如;有一个Car类声明一个虚函数(空)Drive。然后有3个其他车类继承汽车并实施Drive。 如果我勾住车内的(基类)Drive功能(使用一个简单的“JMP”钩)将它由Car后裔被触发,当他们引发Drive,如果他们

    2热度

    1回答

    我的系统:微软Windows XP专业版32位 IDE /编译器:微软的Visual C++ 2010 Express Edition的 库:走弯路3.0快递 目标:写简单的数据包记录器。 我的代码: mydll.cpp #include <cstdio> #include <windows.h> #include <detours.h> #pragma comment(lib,"deto

    2热度

    2回答

    我一直在使用与Microsoft Detours相同的方法练习弯路(用jmp和地址替换前五个字节)。最近我一直在通过修改虚拟表来阅读关于绕行的内容。如果有人能够通过提及这种方法的一些优点和缺点,与前面提到的方法相比,我会很感激的。 我也想问一下堆栈上的vatch和对象。考虑以下情况: // Class definition struct Foo { virtual void Call(voi