Win7 32bit 扫雷外挂

本文详细介绍了如何破解Windows 7版本的扫雷游戏,包括获取地图数据、计算客户区域坐标以及实现自动翻开等功能的技术难点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只写一下技术难点:

 

1. 取得地图。这个版本是C++写的程序,因此破解比XP版的要难得多。Ollydbg看了两个半天。结论如下:

 * 程序BASE ADDRESS+0x868b4处为一个4字节的全局指针。推测为全局控制类。取名为GAME_THIS(指向全局GAME对象)

 * 地图对象是从全局GAME对象编译0x10处

地图的宽(width),高(height)各为4字节,分别在地图对象的+0x8,+0xc处

 * 地图对象+0x44处为一个二维数组对象,其+0xc处开始有一个长度=width值的指针数组。每个指针指向一个长度=height值的字节数组(也可以是bool数组)

 

2. 拿到地图后就可以显示并自动翻开了。但是需要计算客户区域的座标。

 对Win7 扫雷进行放大缩小后可发现,客户区域是保持纵横比放大缩小的,因此不能简单的用窗口大小来算。于是采用扫描纵横方向中心线的像素进行判断。

 

3. 自动翻开的处理。因Win7版和XP版不一样,是使用DirectUI做的窗口,所以用PostMessage(WM_LBUTTONDOWN,...)这样的方法是不起作用的。这里采用mouse_event来做。

 

源代码和编译好的程序放在:

http://download.youkuaiyun.com/detail/superarhow/5081068

运行结果:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值