|
|
50精币
我的想法hook一个游戏函数,跳到自己的call里面
自己的函数地址大概是 "7FFF FFFF FFFF" 固定范围的,前面是7F起步
游戏的函数地址是 "14500 0000" 这个固定范围
问题来了,jmp到自己函数,看到汇编代码是没问题,已经现在jmp过去,汇编里面是8字节存储
push rax
mov rax, 7FFF FFFF FFFF
call rax
pop rax
但是,执行的时候会出问题,在jmp的地址下一个断点,他跳不过去了,单步走,直接崩
你没看错,他是跳不过了,显示上他是能跳过去的
我能想到的疑点是,是不是函数地址相差太远,结果显示上是已经jmp过去,只是执行上会崩
能懂我的意思吧,已经计算好偏移,写法是完全正确的,但是程序执行不了太高位的地址,我猜是这个原因
还有一个疑点,是不是vs2019需要设置才能启动高位地址使用
|
最佳答案
查看完整内容
64位? 要不然14字节大跳 要么申请高位内存算相对地址5字节小跳过去
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。 友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。 快捷通道:申请荣誉值 →
|