开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6333|回复: 13
收起左侧

[图文资料] 游戏多开的原理与方法

[复制链接]
结帖率:14% (3/22)
发表于 2016-4-13 14:25:04 | 显示全部楼层 |阅读模式   江苏省苏州市

第一,进程隐藏

部分游戏通过探测游戏客户Duan进程是否已经存在来防止重复打开,如游戏:英雄美人游戏多开的办法为启动一个游戏客户Duan后,将该游戏的进程隐藏,只保留一个或多个。

第二,窗口标题修改(使用FindWindow API函数)

部分游戏通过探测游戏客户Duan的窗口是否已经存在来防止重复打开。游戏多开的办法为将游戏的窗口修改为任意字符。

第三,端口隐藏

部分游戏通过默认打开TCP或者UDP端口监听,开第二个游戏的时候会打开端口失败从而判断游戏是否多开。游戏多开的方法为此类需要采用netstat –a –n –o 命令查看端口即可实现游戏多开。

第四,多个游戏目录

部分游戏通过独占文件访问来防止重复打开。

游戏多开的方法为复制游戏客户Duan到另外的文件夹,在另外的文件夹打开即可。

第五,多个操作系统账号(仅限XP系统)

部分游戏通过限制一个用户只能打开一个游戏来防止重复打开。游戏多开的方法为在系统账号里面多建立账号,一个游戏使用一个账号。

方法如下:

1、打开控制面版→用户帐户→创建一个新帐户→输入新帐户名(下一步)→创建帐户;
2、然后到桌面的游戏快捷图标上右键到[属性] 选[高级] 把里面[以其他用户身份运行]这个选项勾上 开第2个程序的时候记得用你新建的用户进就可以了,省的老去切换用户了。

第六,互斥体。

部分游戏通过互斥对象/信号量/事件等线程同步对象来确定程序是否已经运行。最常用的函数如:CreateMutexA。

1、首先创建一个互斥体,CreateMutex函数,第一个参数可以设置为NULL,第二个参数必须设置为false,第三个参数表示互斥体的名称,这个名称最好有一些特殊标识以防止与其他应用程序冲突,比如程序名+时间。

2、使用GetLastError()函数判断错误信息是否为ERROR_ALREADY_EXISTS,如果是,则表示程序已经启动。

游戏多开的方法有二种,一为发现互斥体,然后关闭互斥体即可实现多开。二为APIHOOK,接收到错误信息时,加重置命令(置错误码=0)即可。QQ游戏,天龙八部==最常见的类型

第七,内存映射文件(File Mapping)

部分游戏通过把程序实例信息放到跨进程的内存映射文件中,防止游戏多开。游戏多开的方法为拦阻该函数,不让它命名内核文件即可实现多开。

第八,DLL全局共享

DLL全局共享区在映射到各个进程的地址空间时仅被初始化一次,且是在第一次被windows加载时,所以利用该区数据就能对程序进行多开限制。游戏多开的方法为DLL劫持让游戏一开始运行就加载你的DLL,再转到原来的dll上就可以实现多开了。

第九,使用公共文件

程序启动时,在一个公共目录(比如C:\或者Temp目录)中创建一个公共文件,并将此文件设置为不共享读写。第二个程序启动时,也打开此文件,如果打开成功,则表示程序未启动过,否则表示程序已经启动。

游戏多开的方法为:手动设置多开,比如:设定文件访问权限,不允许此程序在公共目录创建文件等。

第十,Mac地址验证

登陆服务器时,获取本机mac地址,发送至服务器端,服务端进行mac地址验证,如果mac地址重复登陆,则不允许同服务器进行消息传递。

多开游戏的多法为:使用超级兔子等软件修改mac地址实现多开,针对此情况,本人也写了一个修改Mac地址的小工具,大家可以在网站下载。

第十一,查看网络连接

获取本机所有网络连接,使用GetTcpTable获取TCP连接,使用GetUdpTable获取UDP连接,检查是否有连接到服务器IP和端口号的连接,如果有,表示程序已经启动,否则程序未启动。需要注意的是,其获取的ip和端口号都是一个DWORD值,并且高低位相反。IP地址可以通过inet_addr函数将字符串形式的IP地址(如“127.0.0.1”)转换为DWORD型的,端口号可以使用以下公式转换:DWORD dwPort = ((nPort & 0xff) << 8) + ((nPort & 0xff00) >> 8);

多开游戏的方法为:挂系统钩子,导致GetTcpTable函数失败实现多开。

游戏防止多开的方法有时候并不是只用一个方法的,多数游戏都会用多种方法一起来防止多开的,只要大家都懂得这几个游戏多开的原理,灵活运行,一个一个分析排查,基本上都能解决各种游戏多开了.。



签到天数: 1 天

发表于 2023-1-8 14:15:42 | 显示全部楼层   贵州省黔东南苗族侗族自治州
感谢楼主这么无私写讲解,吾辈楷模日后有所成必将授人以渔
回复 支持 反对

使用道具 举报

发表于 2019-4-4 23:22:07 | 显示全部楼层   河北省保定市
学习学习学习学习
回复 支持 反对

使用道具 举报

发表于 2018-2-7 22:59:11 高大上手机用户 | 显示全部楼层   陕西省汉中市
很厉害啊 一直在想互斥体的问题 谢谢分享
回复 支持 反对

使用道具 举报

发表于 2018-1-2 15:08:05 | 显示全部楼层   浙江省台州市
简单明确,学习了!!!!
回复 支持 反对

使用道具 举报

结帖率:91% (10/11)
发表于 2017-7-28 20:14:37 | 显示全部楼层   福建省泉州市
这好贴居然没有人顶?我顶了先~
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 12 天

发表于 2017-7-15 18:30:40 | 显示全部楼层   广东省肇庆市
这么多种类~
回复 支持 反对

使用道具 举报

发表于 2017-7-15 01:55:17 | 显示全部楼层   安徽省铜陵市
我要一个代码实例,后面写了注释的
本人小白0.0混下金币
回复 支持 反对

使用道具 举报

发表于 2017-7-9 00:16:40 | 显示全部楼层   河南省平顶山市
互斥体最麻烦,感觉现在游戏限制多开的不止一个办法
回复 支持 反对

使用道具 举报

发表于 2017-2-9 23:41:27 | 显示全部楼层   河南省郑州市
膜拜大神,一语道破天机
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表