最近看了郁金香老师的《VC++外挂编程》系列视频,试着按这个思路写了一个笔者自己的连连看外挂。试验了一下,比较成功,已经从0分刷到了近20000分。下面来分享一下经验。
首先说明一下需要用到的工具:
1、 CE(cheat engine),笔者用的是cheat engine6.2,中文补丁。
2、 VC++ 6.0
好了,废话不多说,开始详细讲解整个制作过程。首先打开QQ游戏客户端,选择QQ连连看并选好座位。
打开CE,这是如果不出意外会弹出QQ游戏崩溃发送错误报告的提示。笔者从网上查找资料得知,QQgame启动了某个线程来检测CE,所以只要检测到CE打开了,即便你什么都没做,QQ游戏也会崩溃而推出。
既然知道原因了,那就有对策。过检测的方法就不讲了,这边引用一篇看雪的文章,有详细解释。地址:http://bbs.pediy.com/showthread.php?t=147811&highlight。
要是闲麻烦也没关系,笔者根据上面这篇文章写的一个小工具,可以在打开QQ游戏的时候直接干掉这个检测线程。网盘下载地址:http://vdisk.weibo.com/s/bhIhB。
运行如果提示成功,那接下来就可以放心运行CE了。
游戏分析部分
我们首先是要找出棋盘的内存地址。内存中存放棋盘的方法可以假定为,如果该格子上有图片,那么数据是大于0的某个值;而如果该格子上没有图片,那么数据应该是等于0。
我们先来验证一下以上假设是否正确。笔者的方法是查找棋盘最左上角的那个格子。具体过程,打开CE,点选择进程,选择连连看进程。
在scan type处选择ExactValue,Value type处选择Byte。最后,在Value处填入0(在游戏还没开局前,这个格子对应的内存数据应该是0,表示该格子没有图片)。其它设置默认即可。填写完后如下:
然后点击FirstScan,第一次搜索完后会发现内存中为0的数据成千上万。没关系,继续搜索即可。
点击连连看的练习ÿ