请教下大家,我用VB写的程序修改游戏内存,在游戏城镇使用没有问题,但是在游戏关卡中使用,就会引起游戏崩溃,但是我用CE生成的修改器修改游戏内存数据的时候,无论是在城镇还是在游戏关卡中使用游戏都不会崩溃,这是什么原因啊?
请知道的大神指定一下:
PS:我用VB写的也能达到修改后要实现的效果,主要就是不能在关卡中使用。我猜想城镇中使用的时候那段要被修改的程序地址没有被执行,可能是游戏关卡中使用修改的时候,而那个地址的汇编代码正在被执行,所以修改的时候引起了游戏崩溃,这只是我个人猜想的,不知道是不是这个原因,求大神不吝赐教!
还有一点就是我觉得可能是在关卡中那段地址可能被调用,调用过后,所有寄存器的值会发生改变,而那些值都与之前没被修改的时候有关,而修改过后,再运行到修改过后的程序地址时候,传入的寄存器数值会引起错误,
这是指我个人猜想的。
我目前所能想到的原因就这么多了,还不知道怎么去解决这个问题
但是CE生成的程序修改器就不会出错,CE是怎么实现的呢? 难道是修改那个内存地址数据之前把所有的寄存器压栈,
还有一点,是不是关卡中我正在修改那个内存地址的时候,程序本身也刚好执行到那个地址,产生了冲突!是不是要调用API暂停游戏进程然后修改,修改过后再让游戏恢复继续运行
求大神们进来讨论,
【希望吧务别删我的帖子,我只是和大家谈论技术】
为带动VB的发展做点贡献!嘻嘻!
希望此贴以后还能帮助更多的VB新人!
请知道的大神指定一下:
PS:我用VB写的也能达到修改后要实现的效果,主要就是不能在关卡中使用。我猜想城镇中使用的时候那段要被修改的程序地址没有被执行,可能是游戏关卡中使用修改的时候,而那个地址的汇编代码正在被执行,所以修改的时候引起了游戏崩溃,这只是我个人猜想的,不知道是不是这个原因,求大神不吝赐教!
还有一点就是我觉得可能是在关卡中那段地址可能被调用,调用过后,所有寄存器的值会发生改变,而那些值都与之前没被修改的时候有关,而修改过后,再运行到修改过后的程序地址时候,传入的寄存器数值会引起错误,
这是指我个人猜想的。
我目前所能想到的原因就这么多了,还不知道怎么去解决这个问题
但是CE生成的程序修改器就不会出错,CE是怎么实现的呢? 难道是修改那个内存地址数据之前把所有的寄存器压栈,
还有一点,是不是关卡中我正在修改那个内存地址的时候,程序本身也刚好执行到那个地址,产生了冲突!是不是要调用API暂停游戏进程然后修改,修改过后再让游戏恢复继续运行
求大神们进来讨论,
【希望吧务别删我的帖子,我只是和大家谈论技术】
为带动VB的发展做点贡献!嘻嘻!
希望此贴以后还能帮助更多的VB新人!