签到
Home
Android
iOS
C++
Article
搜索
登录
注册
游戏多开的原理与方法
Home
/
Article
MrLee
2016-10-28
3756
第一,进程隐藏
部分游戏通过探测游戏客户端进程是否已经存在来防止重复打开,如游戏:英雄美人游戏多开的办法为启动一个游戏客户端后,将该游戏的进程隐藏,只保留一个或多个。
第二,窗口标题修改(使用FindWindow API函数)
部分游戏通过探测游戏客户端的窗口是否已经存在来防止重复打开。游戏多开的办法为将游戏的窗口修改为任意字符。
第三,端口隐藏
部分游戏通过默认打开TCP或者UDP端口监听,开第二个游戏的时候会打开端口失败从而判断游戏是否多开。游戏多开的方法为此类需要采用netstat –a –n –o 命令查看端口即可实现游戏多开。
第四,多个游戏目录
部分游戏通过独占文件访问来防止重复打开。
游戏多开的方法为复制游戏客户端到另外的文件夹,在另外的文件夹打开即可。
第五,多个操作系统账号(仅限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函数失败实现多开。
游戏防止多开的方法有时候并不是只用一个方法的,多数游戏都会用多种方法一起来防止多开的,只要大家都懂得这几个游戏多开的原理,灵活运行,一个一个分析排查,基本上都能解决各种游戏多开了。
本文链接:
https://it72.com/11147.htm
收藏
0
收藏的用户(
0
)
X
正在加载信息~
推荐阅读
WordPress函数query_posts细说
【软件多开】多用户远程桌面-RDPWrap
这套系统运行速度是真心快啊!模拟post/get请求
jquery 中的 $("#") 与 js中的document.getElementById("") 的区别
Yosemite 10.10.1懒人版完美安装
微软首个跨平台编辑器 Visual Studio Code
云计算、大数据,一个是引擎、一个是新能源
New Moto X 2014 全版本RSD&Fastboot刷官方底包教程
CS服务器架设的几个要注意的地方
Java写的一个小节点分类例子
最新回复
(
0
)
返回
站点信息
文章
2319
用户
1336
访客
11976275
每日一句
Gentleness is my strength, sharpness is my boundary.
温柔是我的力量,锋利是我的边界。
iOS开发——storyboard多语言适配
如何成为前端开发人员?
解决Xposed提示didn't find class
全局AfxMessageBox默认标题修改
使用VS Code断点调试Vue代码
Cocos2dx 3.x 解决首次项目复制库文件编译慢的问题
Android studio代码导入第三方Library库
编码恐惧的10条提示
《http篇》boost.asio下载和编译
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is
免费xiuno博客主题【最后更新:2019.5.20】
独家发布最新可用My-AutoPost——wordpress 采集器
C#实现后台最小化截图
仙剑奇侠传3d回合-PC端多开
如何在iPhone上移动多个应用程序
首发:Thinkpad T550黑苹果10.13.4安装教程
css样式之flex布局注意事项
Android屏幕共享及远程控制【免root】
MPAndroidChart曲线非连续改装笔记
ASUS TF810C平板电脑用U盘安装windows8.1系统
新会员
南北在南
Trya
龙祖
Yan
每天前进
/llx
。我是蓝
小满哥
Airh
南宁枫桥
同尘
Chil
好久不见
中国网建
UilT
蒋林斌(