Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;代理DLL(64位)_C++_Assembly_Proxy_64 Bit - Fatal编程技术网

C++ C++;代理DLL(64位)

C++ C++;代理DLL(64位),c++,assembly,proxy,64-bit,C++,Assembly,Proxy,64 Bit,我使用了一个名为wrappit的工具来生成代理dll文件。 可在此处找到该工具: 但是目标DLL被编译为64位,并且由于VisualStudio不支持64位内联汇编,并且不知道其他任何选项,因此我无法进一步说明 这是一个功能: extern "C" __declspec(naked) void __stdcall __E__312__() { __asm { jmp p[312*4]; } } 不支持裸/内联asm,并给出编译器错误 我能做什么?在x64世界中没有内联a

我使用了一个名为wrappit的工具来生成代理dll文件。 可在此处找到该工具:

但是目标DLL被编译为64位,并且由于VisualStudio不支持64位内联汇编,并且不知道其他任何选项,因此我无法进一步说明

这是一个功能:

extern "C" __declspec(naked) void __stdcall __E__312__()
{
__asm
    {
    jmp p[312*4];
    }
}
不支持裸/内联asm,并给出编译器错误


我能做什么?

在x64世界中没有内联asm,即使您找到了一些替代(内部?)也没有 也不支持uuu declspec(裸体)

你到底想干什么? 您是否正在尝试在外部(为您)DLL中拦截某些调用

如果是这样的话,微软有一个东西叫迂回,听说不错,千万不要用

你可能想把MinHook作为另一个选择,这个很好


此外,您还可以使用as迂回替代方案拦截任何函数。它在x86和x64中都能完美工作,它是开源的,并且维护良好

谢谢你的快速回答。我正在使用我提到的工具(Wrappit)创建一个代理DLL—我发送的源代码是生成的代码的一部分。代理DLL导出原始DLL所具有的所有函数。好吧,由于内联asm和_declspec(裸体)的运气不佳,您必须使用其他方法来构建蹦床。我猜使用代理DLL的上半部分来构建导出函数的列表(.DEF)以及构建蹦床的MinHook部分可能会起作用。但这本身并不是一个微不足道的项目。对不起,没有更多的东西可以提供。。。