VC编程——QQ连连看外挂
以下转载至本人QQ空间。如有雷同,纯属巧合。
连连看有很多种,比如网页的连连看、水晶连连看等,对于不同的连连看需要量身订做外挂。
下面看一下效果图,你自然知道是哪款游戏的连连看。
一、参考资料
郁金香老师的VC外挂教程的初级篇——前4、5课的视频教程可以免费观看,后面要收费,但是可以下到源代码,既然源代码都有了,对于一个程序员来说,一切就变得简单了。
http://www.yjxsoft.net/VC++jc.html
二、编写原因
既然人家都有了源代码,为什么我还要自己编写一个呢?原因如下:
1、郁金香老师也是教大家通过读取内存的方式来查找连连看方块阵列的基址,因此存在游戏版本及操作系统的问题。郁金香当时连连看的版本的基址和现在连连看的基址已经不是同一个,因此他的游戏源代码已经不能适用。需要从新通过CE(Cheat Engine)查找,方法正好在郁金香视频教程免费的那部分里面可以看到。
2、只要改一下郁金香老师里面的那个基址就可以了,但是他写的那个外挂,太霸道了,还能自动挂机,自动开始,见到连连看就秒杀,太过于“血腥”。
3、他的外挂不好的地方在于需要点击外挂窗口上“秒杀”按钮,我改了一下,通过RegisterHotKey的方式申请了windows系统热键,可以使用快捷键方式,按一下快捷键就根据算法消掉一组,一直按着不放就会一直消掉,相当于秒杀的效果,这样还可以玩一下再按一下让人感觉不到外挂的存在。
三、实现方法
1. 快捷键使用(HotKey注册方法)
1)建立MFC基于对话框的工程,创建OnCreate和OnDestroy事件函数
2)在OnCreate中或者OnInitDialog中添加以下代码
RegisterHotKey(m_hWnd,1101,0, VK_F11); //注册申请F11
RegisterHotKey(m_hWnd,1102,0, VK_F10); //注册申请F10
//以上1101和1102是自己定义的,但是不能与MFC系统产生的控件相同,否则可能出错。
3)在OnDestroy中取消热键,退出程序就会中止快捷键
UnregisterHotKey( m_hWnd, 1101);
UnregisterHotKey( m_hWnd, 1102);
4)在h头文件的类里面创建热键回调函数
LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);
5)在cpp的消息映射中添加ON_MESSAGE(WM_HOTKEY,OnHotKey),这是MFC的消息机制
BEGIN_MESSAGE_MAP(CGameLLKDlg, CDialog)
//{{AFX_MSG_MAP(CGameLLKDlg)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_HOTKEY,OnHotKey)
END_MESSAGE_MAP()
6)创建OnHotKey函数,在该函数中完成外挂代码
2.主代码
LRESULT CGameLLKDlg::OnHotKey(WPARAM wParam,LPARAM lParam)
{
POINT p;
bEnableDebugPriv(); //提升权限
hwnd = ::FindWindow(NULL, "QQ游戏 - 连连看角色版"); //这个是VC6.0的调用方法
DWORD hProcessId;
byte chessdata[11][19];
RECT r1;
::GetWindowThreadProcessId(hwnd, &hProcessId); //得到窗口进程
::GetWindowRect(hwnd,&r1); //得到窗口大小
HANDLE processH = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, hProcessId); //打开进程
DWORD byread;
LPCVOID pbase=(LPCVOID)0x0012A444; //XP下棋盘数据基址
if(wParam == 1102) //判断是否是Win7
{
pbase=(LPCVOID)0x0012A480;; //Win7下棋盘数据基址
}
LPVOID nbuffer=(LPVOID)&chessdata; //存放棋盘数据
::ReadProcessMemory(processH,pbase,nbuffer,11*19,&byread);
ClearPiar(); //这个函数是郁金香老师教程里面的代码,作用是消除其中一对方块
::CloseHandle(processH);
return 0;
}
3. 权限提升函数bEnableDebugPriv();
bool CGameLLKDlg::bEnableDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {
return false;
}
if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue)) {
CloseHandle(hToken);
return false;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL)) {
CloseHandle(hToken);
return false;
}
return true;
}
4. ClearPair函数,这个函数是消除方块的算法函数,这里就不引用了,郁金香老师的教程里面有,也可以自己写。就是将数组里面相等而且满足界面上折两下以内能达到的方格清除。
四、操作及外挂缺陷
1. 在XP下每按F11一次可消掉一对方格,在win7下需要按F10,这个是由申请的系统热键及代码判断决定的
2. 可在OnInitDialog里面加上ShowWindow(SW_MINIMIZE)实现开机最小化
3.由于是读内存,因此跟之前的扫雷外挂一样,根据该游戏的版本及操作系统而决定内存的基址,因此只要游戏开发厂商一旦更改软件版本就很有可能造成该外挂无法使用,呵呵...对于我而言也就是用CE再找一次而已,总之,没有能够实现万能就是它的缺陷、
4.游戏全局内存分配还与操作系统有关,本外挂仅支持32位下的XP和Win7两个系统,其它的也得从新找基址,只要找到改一下基址就OK。
VC编程——QQ连连看外挂相关推荐
- QQ连连看外挂V1.0版发布啦!!
本外挂支持最新的连连看角色版.功能如下: 1.可手动设置消去时间,可以在秒杀对手也可以慢慢消(这样不容易被发现是在用外挂,可以赚很多分) 2.可设为自动开始.程序自动运行.若有事出门,可选自动开始,在 ...
- 自制 QQ游戏 连连看 外挂 ~~
这几天期末考,完全没有考试的心情,又无聊到玩起连连看,可惜输得太多,非常不爽,于是自己做个连连看外挂玩一下.网上有很多连连看的外挂可以下载,不过自己做一个来用,感觉自然不一样,毕竟还是学计算机的嘛~~ ...
- 200行Python实现效果逆天的连连看外挂
本文内容转自我本人的知乎回答:你看过/写过哪些有意思的代码? - 三级狗的回答 - 知乎 https://www.zhihu.com/question/275611095/answer/4079841 ...
- 连连看外挂消去算法分析
很久之前发布了一个小外挂,是我自己捣鼓出来的QQ游戏连连看外挂. 见:http://www.cnblogs.com/G_Weber/archive/2009/06/02/1494871.html 在做 ...
- 【开源】java做游戏之QQ连连看java单机高仿版(算是目前最高仿的了)
QQ连连看JAVA高仿单机版V1.0 前言 为什么说是目前最高仿的呢,因为想做这个的一般是新手,要实现的跟我一样有点难度,至少我在网上没搜到(java版本).还有就是高手对这个没兴趣,不会做这个玩意儿 ...
- 《实用VC编程之玩转控件》第1课:Windows编程简介
本文转载自: VC驿站 https://www.cctry.com/thread-297374-1-1.html 0.开发环境: 操作系统:Microsoft Windows 7 Ultimate S ...
- QQ游戏外挂制作教程 (对对碰)
这些日子,QQ游戏外挂是风光了一阵.俄罗斯方块,连连看,对对碰这些游戏的外挂层出不穷.其实这一类外挂的原理大体都是一样的.下面我就以QQ游戏对对碰外挂作为例子阐述一下QQ外挂的制作原理. ...
- 200行Python 实现的qq连连看辅助, 用于学习, 请不要拿去伤害玩家们
Linux编程点击右侧关注,免费入门到精通! 作者丨Laziji https://laboo.top/2018/11/07/lianliankan/ 前言 Python 实现的qq连连看辅助, 仅用于 ...
- 连连看外挂的制作.1 ----- 建立模型
<script type="text/javascript"> </script> 前一段看Linux内核,看的头晕眼花,不得不承认,自己还没到那个层次,到 ...
- 连连看外挂制作–基于OpenCVVC++
前段时间老同学叫我做个连连看外挂,但是那时候要考试没时间做,就耽搁下来了,直到最近几天才又萌生了写连连看外挂的念头,刚好是周末,正好有时间来写这个外挂. 写外挂之前,先理顺写外挂的思路,第一步当然是先 ...
最新文章
- 项目开发过程中的收获与思考
- 《2019人工智能发展报告》!含计算机视觉、机器人等13个子领域(附链接)
- IE9会颠覆传统的上网模式?
- (POJ-3279)Fliptile (dfs经典---也可以枚举)
- java web插件_javaweb项目插件实现机制
- Report_报表中Ref Cursor数据源的概念和用法(案例)
- ORACLE 回收站管理
- Matplotlib常用命令
- stauml工具怎么导入文件_小伙教大家怎么剪辑短视频,1小时就学会添加字幕,值得收藏哦...
- window7 64位下Android studio 安装genymotion模拟器
- CC1101接口库在STM32上的移植
- android图片添加文字,android图片上添加文字
- js日期格式化函数示例:将日期时间格式化成yyyy-mm-dd hh:ii:ss格式
- Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低
- Linux 命令详解之df命令
- 电脑上不去网的6点原因
- IWS国际儿童及青少年水彩画大赛开始了
- 汉化软件Radialix 3的使用
- height:100%与height:inherit的区别
- 数据处理分析模块 Pandas(3)
热门文章
- 无需重装系统,Windows Server 2019系统硬盘无损从MBR转换为GPT格式
- [转组第3天] | 黑盒测试
- Dialog去掉默认白色背景
- 抖音mysql_抖音排行榜数据库设计方案
- 电商API接口如何使用(教你获取数据)
- Word插入页码简单方法
- 一些排序算法的Python实现
- java-maven项目中出现Cannot resolve————已解决
- PostMan中文插件支持8.12.2
- 微信怎样连电脑连接到服务器ip,如何把微信小视频传到电脑上?(ipone也适用)...