改动的代码
_asm
{
lea rdi, OldCode
mov rsi, oldAddr
cld
movsd
movsb
}
NewCode[0] = 0xe9;
_asm
{
lea rax, Core
mov rbx, oldAddr
sub rax, rbx
sub rax, 5
mov qword ptr[NewCode + 1], rax//原来四字节换成八字节
}
因为64位,寄存器变了,所以换了寄存器
哈哈HooK成功!
vs2015 64 位下是不能识别asm的,要下载Intel C++ Compiler ,我是 17.0