作者:无名 邮箱:coolmoonf($#)163.com 博客:http://blog.youkuaiyun.com/nnsword
处理目标程序如下:
里面有二个方法,一个加血,一个是减血。由于系统是win7,寻到的Call基址,会改变,所以不能通过固定基址来远程调用这二个方法。所以我们只能变通了。
首先我们知道,编译后程序相对于模块基址的偏移量是不变的,所以我们可以按这个思路来处理。
首先分析寻找二个方法的基址(怎么分析,在这不多说明),如下:
加方法基址:012F35B0
减方法基址:012F36A0
当前模块基址:012e0000
根据刚才思路我们计算出二个方法的偏移,如下:
计算公式:基址偏移=基址-模块基址
加方法基址:135b0
减方法基址:136a0
根据思路我们调用时的正确基址计算公式应该如下:
基址=模块基址+基址偏移
下面是实例代码片段: