有QQqq宠物连连看看的G发个来 按一个键消一对的

2109人阅读
以下转载至本人QQ空间。如有雷同,纯属巧合。
连连看有很多种,比如网页的连连看、水晶连连看等,对于不同的连连看需要量身订做外挂。
下面看一下效果图,你自然知道是哪款游戏的连连看。
一、参考资料
郁金香老师的VC外挂教程的初级篇&&前4、5课的视频教程可以免费观看,后面要收费,但是可以下到源代码,既然源代码都有了,对于一个程序员来说,一切就变得简单了。
二、编写原因
既然人家都有了源代码,为什么我还要自己编写一个呢?原因如下:
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
//以上是自己定义的,但是不能与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函数,在该函数中完成外挂代码
LRESULT&& CGameLLKDlg::OnHotKey(WPARAM&& wParam,LPARAM&& lParam)&
POINT&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&LPCVOID pbase=(LPCVOID)0x; //XP下棋盘数据基址&if(wParam == 1102)    //判断是否是Win7&{&&pbase=(LPCVOID)0x;; //Win7下棋盘数据基址&}&LPVOID& nbuffer=(LPVOID)&&&& //存放棋盘数据&::ReadProcessMemory(processH,pbase,nbuffer,11*19,&byread);
&ClearPiar();&&& //这个函数是郁金香老师教程里面的代码,作用是消除其中一对方块
&::CloseHandle(processH);&return& 0;
3. 权限提升函数bEnableDebugPriv();
bool CGameLLKDlg::bEnableDebugPriv() { &HANDLE hT &LUID sedebugnameV &TOKEN_PRIVILEGES &&if (!OpenProcessToken(GetCurrentProcess(), &&TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { && &} &if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue)) { &&CloseHandle(hToken); && &} &tkp.PrivilegeCount = 1; &tkp.Privileges[0].Luid = sedebugnameV &tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; &if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL)) { &&CloseHandle(hToken); && &} & }
4. ClearPair函数,这个函数是消除方块的算法函数,这里就不引用了,郁金香老师的教程里面有,也可以自己写。就是将数组里面相等而且满足界面上折两下以内能达到的方格清除。
四、操作及外挂缺陷
1. 在XP下每按F11一次可消掉一对方格,在win7下需要按F10,这个是由申请的系统热键及代码判断决定的
2. 可在OnInitDialog里面加上ShowWindow(SW_MINIMIZE)实现开机最小化
3.由于是读内存,因此跟之前的扫雷外挂一样,根据该游戏的版本及操作系统而决定内存的基址,因此只要游戏开发厂商一旦更改软件版本就很有可能造成该外挂无法使用,呵呵...对于我而言也就是用CE再找一次而已,总之,没有能够实现万能就是它的缺陷、
4.游戏全局内存分配还与操作系统有关,本外挂仅支持32位下的XP和Win7两个系统,其它的也得从新找基址,只要找到改一下基址就OK。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:36754次
排名:千里之外
原创:13篇
评论:17条
(1)(1)(2)(1)(1)(1)(1)(2)(4)大家都在搜:
扫描二维码***搜房网房天下APP
手机浏览器访问搜房网房天下
> > 问题详情
谁有QQ连连看按个键消一对的G 无毒的 80分送上
浏览次数:0
回答被采纳后将共获得20
百度搜索 我曾经用过按一次就全部消完的
不知道下面这条知识能否帮助到您
给80、90后的8个买房忠告,句句戳中内心。
给80、90后的8个买房忠告
位提问人正在寻找***
手机动态登录
请输入用户名/邮箱/手机号码!
请输入密码!
没有搜房通行证,
ask:2,asku:0,askr:37,askz:217,askd:7,RedisW:0askR:62,askD:266 mz:nohit,askU:0,askT:0askA:330
Copyright &
北京拓世宏业科技发展有限公司
Beijing Tuo Shi Hong Ye Science&Technology Development Co.,Ltd 版权所有
******: 400-850-8888 违法信息举报邮箱:

参考资料

 

随机推荐