教你用VC6做QQ对对碰外挂程序.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教你用 VC6 做 QQ 对对碰外挂程序 教你用 VC6 做 QQ 对对碰外挂程序 P 前段时间跟以前的同事玩QQ 游戏对对碰,结果输的好惨,后来在网上看到了有对对碰的外挂,但还需要注册,就考虑既然别人可以写出来,我为什么就不能写出来 呢?于是花了一个下午的时间仔细研究了一下,把外挂写了出来。BR 其实原理很简单,只要将棋盘上面的数据保存起来,然后经过分析就可以知道移动哪里的动物,然后再通过模拟鼠标消息来点击两个位置就可以了。BR 1)获取棋盘数据 BR 要得到棋盘的数据进行分析,思路是这样:首先得获得对对碰的窗口,然后对窗口上面的象素进行分析,从而获取每个格子中的数据。对于每个格子里面的动物, 一定可以有几个有特征的点使得可以区分开每个格子中的动物,可以用用2 到 3 个点的数据保存一个动物,这样把每个格子中动物的数据都获得后,棋盘的数据也就出来了。 BR 首先,要得到对对碰的窗口,这个比较简单,可以用::FindWindow 来实现, 具体代码如下:BR CQQGameToolDlg * dlg = (CQQGameToolDlg *)parm;//这里因为这个函数是作为一个线程来做的,所以得传递一个参数过来BR dlg-gt;hWnd = ::FindWindow(NULL,QQ 对对碰);//查询BR if(dlg-gt;hWnd == NULL)BR dlg-gt;hWnd = ::FindWindow(NULL,对对碰);//好像窗口标题有时还不同,不知道是不是我自己搞错了BR if(dlg-gt;hWnd == NULL)BR {BR AfxMessageBox(未找到对对碰窗口,请首先启动对对碰! );BR dlg-gt;SetDlgItemText(IDC_BUTTON1,启动);BR dlg- gt;m_bStart = false;BR return 0;BR }BR 到这里就得到了QQ 对对碰的窗口句柄,但是要分析窗口中的象素,还需要得到一个窗口的HDCBR dlg- gt;hDc = ::GetDC(dlg-gt;hWnd);BR 下面就是得到棋盘的数据了,首先得测试出棋盘左上角的坐标和每个格子的边长,具体测试方法就不给出了,是比较简单的,经过测 试得出的数据,棋盘左上角坐标为(176,102),每个格子的边长是 48。BR 接下来就是保存棋盘数据了BR 下边的函数是为了获取每一个方格的数据的BR 参 数 x,y 是棋盘坐标,比如(0,0)代表左上角第一个方格等等。BR 我们在这里取每个格子中间那条线的象素作为数据进行存储。BR COLORREF * CQQGameToolDlg::GetRectData(int x, int y)BR {BR COLORREF * color;BR color = new COLORREF[48];BR int count = 0;BR for(int i=(x-1)*48 + m_posX;ilt;(x-1)*48 + m_posX + 48;i++)BR {BR color[count++] = GetPixel(hDc,i,(y-1)*48 + m_posY + 20);BR //如果是棋盘的底色,则忽略BR if(color[count-1] == 0x00efaa5a || color[count-1] == 0x00f7c384)BR color[count-1] = 0x000000;BR }BR return color;BR }BR 下边的函数获取每个格子的特征点的数据:BR 在这里我们只取六个特征点进行存储,把六个特征点的十六 进制保存起来。BR void CQQGameToolDlg::GetCode()BR {BR for(int i=1;ilt;=8;i++)BR for(int j=1;jlt;=8;j++)BR {BR CString str;BR COLORREF * c;BR c = GetRectData(i,j);BR str.Format(%x%x%x%x%x%c,c[25],c[26],c[27],c[28],c [29],c[30]);BR data[j] = str;BR }BR }BR 经过上面的函数,则data数组保存的就是棋盘的数据了,到这里,对棋盘数据的获取就结束了。 BR 2)分析棋盘数据BR 得到棋盘数据以后,需要对棋盘数据进行分析了,思路 是分别分横向和纵向遍历所有的格子,先找到两个相同动物相连的格子,然后找到周6 围 个可能移动的格子,只要在6 个格子中找到一个与那两个相同的,就说明可以移动那个格子中的动物了

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档