最近在照着RK(好多年前)整理的资料学习SIRE,已经完成了一些基本的修改和新增特技(比如骑兵冲锋超过X格时伪报敌军这种简单特技),但是有个修改方法上的问题不太清楚,我也没有RK和羊大的联系方式,只好跑来贴吧问了。
问题是:新增代码要求在0x8Axxxx段加入新代码,但是使用jmp或者call跳转的时候,会发生卡死(不是闪退,就是卡住动不了)。我把call的函数的函数体直接写成c3(ret)也不行,一条就卡死。相反,如果我把call的指令改成5字节的nop就没事,想请问一下这是为什么?
我没学过Intel汇编,全是看RK整理的资料在学,我理解中,jmp和call的写法就是E9/E8后边跟(跳转地址- 当前指令地址 - 5)的16bit 小端序,是这里错了么?然后我是直接用Hex在4Axxxx加入的新增汇编码。
希望有懂的旁友指点一下,正在给韩信写新兵仙特技,被卡在这里很难受hhh
问题是:新增代码要求在0x8Axxxx段加入新代码,但是使用jmp或者call跳转的时候,会发生卡死(不是闪退,就是卡住动不了)。我把call的函数的函数体直接写成c3(ret)也不行,一条就卡死。相反,如果我把call的指令改成5字节的nop就没事,想请问一下这是为什么?
我没学过Intel汇编,全是看RK整理的资料在学,我理解中,jmp和call的写法就是E9/E8后边跟(跳转地址- 当前指令地址 - 5)的16bit 小端序,是这里错了么?然后我是直接用Hex在4Axxxx加入的新增汇编码。
希望有懂的旁友指点一下,正在给韩信写新兵仙特技,被卡在这里很难受hhh
