升级日志[2008-2-19]
1 优化了和提高了查找精度和速度(2秒之内)
2 使用缩小图技术解决了显示器在1024×768分辨率时使用本软件的不方便之处
3 去除了边缘提示图的有色边缘
4 消除鼠标在原图中所引起的识别错误
5 修改了其他Bug
点击下面链接下载:(总计大小:170 KB,绿色软件,无需安装)
软件界面:

如何使用
升级日志[2008-2-19]
1 优化了和提高了查找精度和速度(2秒之内)
2 使用缩小图技术解决了显示器在1024×768分辨率时使用本软件的不方便之处
3 去除了边缘提示图的有色边缘
4 消除鼠标在原图中所引起的识别错误
5 修改了其他Bug
点击下面链接下载:(总计大小:170 KB,绿色软件,无需安装)
软件界面:

如何使用
今天谈一谈数字图像处理中的轮廓识别问题。这个问题涉及到一些数字图像处理的理论和算法,推荐阅读:
《数字图像处理(第二版) 》
【原 书 名】 Digital Image Processing (2nd Edition)
【原出版社】 Prentice Hall
【作 者】(美)Rafael C. Gonzalez;Richard E. Woods [同作者作品] [作译者介绍]
【译 者】 阮秋琦;阮宇智[同译者作品]
【丛 书 名】 教育部高等教育司推荐.国外优秀信息科学与技术系列教学用书
【出 版 社】 电子工业出版社 【书 号】 9787121043970
http://www.china-pub.com/247863
这本书是本领域的经典教材,我略读过一些章节,感觉非常受用。
书规正传,为什么要做轮廓识别呢?对于稍有计算机常识和编程经验的玩家来说,我们最初的思路是将整个窗口一分为二,然后左右对应的像素进行比较,相异之处标识出来。至少我的最初思路是这样的!
然而,这就存在一个问题了,窗口平分没有错。但可惜的是左右窗口中的图并非完全对成的。举个例子,左图中找茬图(3,3)点的像素值可能并不直接对应右图中找茬图的(3,3)点的像素值。为什么会这样呢?大家注意下图中的红色区域,这两跟长方形竖调的宽度是不等的,并且是随机波动的(当然在一个范围之内)! 我猜想这是QQ游戏为了防止作弊采取的一个小小的trick。这样好让作弊器不太容易直接把左右两幅如对上。也就是说这一次游戏左(3,3)点应该和右(7,3)点对应,下一次游戏可能就和(0,3)点对应了。
Read the rest of this entry »
因为游戏的特殊性质,本软件比较强调实时性,因此在获取速度、识别速度和反应速度这三个方面都要予以强调,首先介绍如何提高获取速度。下面是一段我常用的代码
double spend=(double)(t2-t1);
CString msg;
msg.Format(“运行完成,一共花费时间为:%d毫秒“,(int)spend);
AfxMessageBox(msg);
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in mmsystem.h.
Import Library: Use winmm.lib.
附上测试代码:点击查看
今天开始,将我春节期间对《QQ游戏 大家来找茬》的分析、辅助插件的设计、编码等一些研究与大家分享。本文所述内容纯属技术讨论范畴,请勿用于非法目的!
QQ游戏大家来找茬是一款很好的休闲娱乐游戏。作为一只视力不太好的菜鸟,在玩游戏的过程中,我不禁产生了这样一个思路:在图像和视频领域,基于人工智能的机器识别在速度和稳定性方面明显强于肉眼。为何不编制一个基于机器图像识别的辅助程序,使的玩游戏的人在卡壳的时候能主动的寻找一些提示呢?(当然,游戏本身提供了一个放大镜的道具,但是这个道具是收费的,因此我不敢用)
这个基于机器图像识别的辅助程序原理很简单,对左右两幅图片进行逐行或者逐列的扫描,对于获取到的像素进行一一比对即可发现两图之差异,这一结构和传统的计算机信息系统获取-分析-行动的思路毫无二致。
那么如何获取呢?我提供三个思路:
u 网络封包的截取和分析:不难看书,每幅图更新的时候网络会有一定的数据传输,如果这时进行本机抓包,应该可以抓到这些数据。根据协议逐段分解后,直接比对raw data,若不通则计算不同之处的坐标位置,可以得知图像相异之处。这无疑是最为快捷的一种办法,无奈QQ游戏的协议分析这一基础工作做的并不是十分到位,相关资料参见:http://www.baidu.com/s?ie=gb2312&bs=qq+%D3%CE%CF%B7+%D0%AD%D2%E9%B7%D6%CE%F6&sr=&z=&cl=3&f=8&wd=qq+%D3%CE%CF%B7+%D0%AD%D2%E9&ct=0
u 第二个办法是定位屏幕图像对应的内存里面的数据,然后逐一比较可以发现相异之处。这个办法基于一个显而易见的事实,既屏幕上每个或者每群像素点的颜色信息总是和内存的某个位置或某一些位置对应。这个方法也十分高效。无奈我用金山游侠抓了若干次,看不太出这个对应规律,只能作罢。。。
u 第三个办法是网上一些外挂用到的利用游戏漏洞的思路。具体漏洞我不得而知,但这种方法可能会因为这款游戏的不断更新而失去其用武之地,因此也不在本文讨论范畴之中
u 最后的,也是最为愚笨的,当然也是最为可靠的办法就是,扫描屏幕该区域-把所有像素点的色彩信息按照某种数据结构存储起来,然后分析和处理!这便是敝人用的办法。但是笨办法也有其生存的道理,例如不惧怕游戏升级,通用性强(至于本软件是否可以用在联众等其他游戏的找茬中,没有测试过,但理论上可行)。
这里顺便提一句关于外挂开发,这方面的文章网上很少,可以百度或者google到的就那几篇,希望本文能给大家带来一些启发。本人才疏学浅,只是兴趣使然,对逆向工程、软件工程略懂皮毛,凭着热情也做过一些棋牌类游戏的外挂,这些经验今后我将和大家一一分享。 本文有疏漏之处还望指正!
You are currently browsing the archives for the Add-In 开发 category.
| 开始听歌 |
Arclite theme by digitalnature | powered by WordPress