我使用了一个名为wrappit的工具来生成代理dll文件。 该工具可在此处找到:http://www.codeproject.com/Articles/16541/Create-your-Proxy-DLLs-automatically
但是目标DLL被编译为64位,并且由于Visual Studio不支持64位内联汇编,并且我不知道任何其他选项,我无法再进一步。
这是一个功能:
extern "C" __declspec(naked) void __stdcall __E__312__()
{
__asm
{
jmp p[312*4];
}
}
不支持Naked / inline asm并给出编译器错误。
我该怎么办?
答案 0 :(得分:0)
在x64世界中没有内联asm,即使你找到了一些替代品(内在函数?),那里 也不支持__declspec(裸体)
你到底想要做什么? 你试图拦截外国(为你)DLL的一些电话吗?
如果是这种情况,有微软称之为Detours的东西,听说它很不错,从不使用它
http://research.microsoft.com/en-us/projects/detours/
您可能希望将MinHook作为替代方案,这个很好
http://www.codeproject.com/Articles/44326/MinHook-The-Minimalistic-x-x-API-Hooking-Libra
答案 1 :(得分:0)
此外,您可以使用Deviare in-proc作为Detours替代拦截任何函数。它在x86和x64都很完美,它是开源的,并且维护得很好。