有趣的是,我不久前回答了一个关于获取C ++构造函数的地址的问题,说它无法完成,所以请使用完美转发。但是,就使用微软的Detour库进行绕行而言,这不是一个选择。为了绕开任何呼叫,需要 地址。所以现在我不得不问一个问题,如果没有构造函数的地址,是否可以绕道一个?如果是这样,怎么样?
答案 0 :(得分:0)
不确定MS Detour,但我通常在C ++中使用内联汇编手动绕道。如果代码(构造函数实例)映射到内存中,并且您可以写入该内存区域,则可以绕过 。
第一步,要获取构造函数实例的地址,需要通过ReadProcessMemory或任何方法搜索其动态地址。我确实从动态加载的DLL中绕过了一个函数。为了获得该函数,我使用HANDLE tempHandle = GetModuleHandle((LPCWSTR)"DLLFileName.dll");
并使用DLL句柄的偏移量。