回复:做了一晚的无用功
发现如下代码:
0040A83D |. E8 6E380000 call KanoAir.0040E0B0
0040A842 |. DD4424 10 fld qword ptr ss:[esp+10]
0040A846 |. DC8E 10030000 fmul qword ptr ds:[esi+310]
0040A84C |. DA86 44030000 fiadd dword ptr ds:[esi+344] ; 打飞值转为浮点数
0040A852 |. E8 69B60300 call KanoAir.00445EC0 ; 这个CALL是改变打飞值的
0040A857 |. 8BCE mov ecx,esi
0040A859 |. 8986 44030000 mov dword ptr ds:[esi+344],eax
0040A85F |. E8 CC020000 call KanoAir.0040AB30
0040A864 |. DD87 18030000 fld qword ptr ds:[edi+318]
被打飞值越高,就越容易被敌人打飞,所以这个值是越低越好,
但是发现了一个问题,所有人的这个值都是通过这一个CALL改的,
现在的问题就是如何确定当前修改的是自己的值还是敌人的值,
如果单纯的跳过的话,敌人的值与自己的值都不会改变的.
头晕ing..... :(
BTW:所有人的内存地址已经找出来了,
现在就差判断了,大家总不想看到敌人与自己的被打飞值都不增加吧