我正在使用 detour 挂钩一些函数,该函数将一些变量保存在寄存器中,以便挂钩到函数并在挂钩后返回真实代码(并且为了它能够工作)我需要将值保存在这些寄存器并在之后加载它们。使用 32 位版本,我只运行了以下代码:
DWORD esireg = 0;
DWORD eaxreg = 0;
__asm
{
mov esireg, esi
mov eaxreg, eax
}
现在我的代码运行,完成后我加载寄存器。
__asm
{
mov esi, esireg
mov eax, eaxreg
}
我的问题是,在视觉上的 64 位中,在 google 中搜索了一下后没有内联汇编,任何人都知道如何保存寄存器值,然后写入那里?
我尝试在此视频中创建一个外部 asm 文件:https ://www.youtube.com/watch?v=XqZCkYr1FB8
问题是我需要将寄存器值保存到一个变量中,所以当我尝试编写时:
savereg proc
mov esireg, esi
savereg endp
它说:“未定义的符号 esireg”
有什么想法吗?