游戏保护之扫雷分析
扫雷分析思路
1. 从界面入手,即从窗口回调函数开始分析(自上而下分析)在窗口回调函数中对鼠标按下的消息设置断点,当断下之后,跟踪消息携带的坐标信息,直到找到扫雷数组为止。
或者对重新开始游戏的按钮设置断点,消息WM_COMMAND
2. 使用CE搜索值,定位地址
如果有多个值,就一一排除。在每个地址上,查看其访问该地址的代码,可以定位地址
3. 从API入手,栈回溯分析
时间相关:定时器函数
界面相关:改变界面的函数
随机函数:rand
扫雷分析之数据分析
1、雷数所对应高
2、雷数所对应宽
3、雷数所对应地址
总结
绿色的称为基址(有随机基址时,基址变,偏移不变)==》在文件中能够可以找到偏移
高度:10056a8 1005338===》可以保存脚本
宽度 1005334 10056ac
雷数:10056a4 1005330 1005194点击==》基地址和偏移1000000
扫雷游戏之代码分析
1、spy++找到窗口的回调函数
回调函数地址:1001bc9
2、ida和OllyDBG双剑合璧(静态与动态分析)
2、1005340数组基地址写10 548 0f变10
8f==>雷 刷新一下会变 点到雷户cc 每一行占32个字节
扫雷游戏之编写脚本
1、宽度14 高度8===》看到边界了 数字41 42 43 写一个遍历所有8f的vs代码写dll简单(若不写则readprocMemony远程线程)
2、内存中变化
3、内存中值与游戏界面对比
8F代表雷数,红色代表雷地图
4、ida分析
5、dll注入
6、vs编写dll注入
7、运行结果
先打开 MFCInject.exe===》刷新===》打开扫雷软件 打开debugview 在扫雷上f5===》debugview会出来遍遍历