1.首先根据内存变化,能迅速找到飞机的生命,炸弹,分数,能够基本确认飞机结构。
2.找飞机位置有点困难,但可以查找飞机结构属性周围的内存变化找到飞机变化的坐标,这里有个小技巧,可以将内存十六进制显示换成十进制显示就非常好观察了。
3.位置变化会影响到渲染,所以在内存变化的地方下硬件访问断点,能够看到取得坐标内存时候的指令操作。
附:曾经在这里下硬件写入断点,发现不可行,因为这里在不停的刷新,随时在写入。
4.根据操作查看调用堆栈,能找到主函数处理每一帧渲染时候调用一系列子函数的位置。
5.想查看敌机生成的地方以及按键处理的地方,我这里的操作时尝试把主函数call子函数的地方给NOP,来根据游戏的变化判断。
附:这里曾经想根据按键消息和一些判断按键状态的api来跟踪,发现并没有通过这种方式来判断键盘状态,因为没有找到相应的vitualkey。通过看汇编指令,能够确定是根据DInput里面的函数来进行操作,而调用api主要是用于菜单快捷键操作。