分享

QQ游戏—连连看 作弊器实现

 昵称9908309 2012-05-07


游戏外挂,就是用来作弊的,实现的原理多种多样,本篇文章简要阐述一下连连看类游戏的外挂编写思路。当然了,不止这一种方法。我所采用的是最笨的,也是最简单的方法了(自认为),下面且听李木给你分析一下。

首先,我们需要获得游戏窗口,既然我们用MFC来写,那当然要用已经封装好的类了,定义CWnd* m_wndGame,在这我自己编写一个FindWindow的函数,并在其中比较我们知道的信息,例如窗口名称的宽高。

在将所有窗口一个一个比较之后,我们得到了想要的游戏的m_wndGame,注意,这是一个类对象,能干很多事情。

接下来做的就是将游戏窗口画下来。这样做:

//获取窗口的窗口设备描述表
CDC* pDCGame = m_wndGame->GetWindowDC();
//创建设备相关的位图
bmpPicture.CreateCompatibleBitmap(pDCGame, width, height);
//创建合适的设备描述表
CDC dcMem;
dcMem.CreateCompatibleDC(pDCGame);
//将新创建的位图选入设备描述表
dcMem.SelectObject(bmpPicture);
//从窗口上复制位图到内存设备描述表
dcMem.BitBlt(0, 0, width, height, pDCGame, left, top, SRCCOPY);
dcMem.DeleteDC();

其中bmpPicture是我们已经定义好的了CBitmap对象。

有了图片信息之后,就可以对其进行操作了,先将其分割成独立的小图片单元,并为其建立链表,怎么判断图片相同是个问题,在这里我们可以这样比较:取出图片中的几个像素,比较之后完全一样的话,就可以认为这图片是一样的,为了增加正确几率,可以将比较的像素多设置几个。

识别完成之后,就会得到各个图片的信息,然后要做的就是配对儿了,还是一个一个对比,能够链接成功则返回两个图片的位置。

还有一个重要的环节,就是模拟鼠标进行点击,为窗口发送消息就可以了

m_wndGame->SendMessage(WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(x, y));

来一张效果图片吧,我用的是瞬间完成,呵呵:

(友情提示:玩游戏用外挂是很不道德的,我也就不道德了几次,主要是想看看效果,及研究一下原理,远离外挂,正常游戏!)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约