ollydbg修改exe小游戏的分数,第一次完成;-)所以记录下来。
首先搜索一下score字符串
右键->查找文本->SCORE
双击进入,可以看到压入了energy和score两个参数后,传入格式化字符串,call printf。
同时注意到,score压入的是eax寄存器的值。我曾设想修改eax寄存器的值,然后发现敌人每移动一点就会重新进行一次函数,我的值就被覆盖掉了。所以应该是从内存中取数据的,修改也是修改内存中的数据。
玩两把,先修改一下分数。然后在下面的地址下个断点。然后f9继续运行
观察到energy的值已经变了,在内存中跟踪一下这个数据
观察到0x16和0x3A就是energy和score的值。修改这两个值为04d2(1234)和10e1(4321)。注意要反着改!d240和e110
修改完成。