【发布时间】:2014-12-25 14:15:58
【问题描述】:
我正在使用裸函数和内联汇编器代理方法调用。
__declspec(naked) void ProxyFunction()
{
static const unsigned int addressofRealFunction = 0x0041b200;
__asm
{
jmp [addressofRealFunction];
}
}
如何将其转换为 x64?在 Visual Studio 中,没有用于 x64 的内联汇编程序或裸函数。
Naked 删除了大会的序言和尾声。我需要这个来确保堆栈帧在调用中保持等效。
你会怎么做?
【问题讨论】:
-
我会做什么?我会使用更好的编译器,例如 gcc 或 clang 支持
__attribute__((naked))和内联 asm(尽管使用与 MSVC 不同的语法)。
标签: c++ c visual-studio assembly