从13年后开始基谷一直都是防止多开的......只不过那个时候呢,基谷没有施行XignCode3 GPK 之类的保护,没有对游戏进程防止第三方程序查找到的保护,导致很多外挂和程序能够从外部找到基谷的进程,把基谷进程里防止多开的一些东西关闭掉,从而实现多开。而就算施行了保护,还可以有DLL劫持之类的方式进入游戏进程中依然可以操作关闭防止多开相关的东西。
基谷防止多开的原理就是程序有互斥体....互斥体是神马东7 ? 通俗的理解就是 一个房间有两个门口都是同一种锁头,你只有一把钥匙,你要么从这个门进,要么从那个门进,你不可能分身同时一把钥匙开两个门,同时进。就是一种有你没他,有他没你的一种排斥形式的东7......
互斥体也叫Mutex,Windows建立互斥体所用的的函数叫 CreateMutexA 那么也就是说龙之谷要建立自己的互斥体,那么龙之谷也要通过这个函数实现。而龙之谷的互斥体的名字叫做 MutexDragonNest 用很多手动杀毒软件都可以看见它,也就是说一旦它被关掉了,那么龙之谷就可以再开多一次.....因为每次开启都会存在,那么就要每次都要先关闭一次,才能多开一次。

有没有办法能够不需要关闭它就直接就一直无限多开呢?傻瓜都知道啦,只要它一直都不存在,那么就可以呗。。。问题是= =你怎么才能让它一直都不存在呢?这是一个问题 - = 。。。。。。。
打开OD.....直接把基谷丢进去....对函数 CreateMutexA 下断点...神马是断点?就是说一旦基谷用到这个东西,程序就自动停止下来让你观察,命令bp CreateMutexA

然后程序运行过程中,开始被断
一看名字就感觉不像。好长,和我们的MutexDragonNest完全不大符合,直接排除

让程序继续运行又被断了下来陆陆续续我们看MutexName都不像是我们想要找的 MutexDragonNest
另外一个手动杀毒工具XueTr观察基谷当前进程的互斥体都陆续有了神马

可以看见这都是我们刚才放行的那些 互斥体 的名字,但是这些互斥体都和多开没有什么关系......
一直不停放行和观察一个可疑的位置出现了

从这个MutexName我们看见,XXXXX_PROCESS_MUTEX_XXXX 虽然- =我英语经常考试20多分,但是PROCESS这个单词是进程的我还是认得出的,PROCESS_MUTEX 就是进程互斥体的意思. 那么可疑怀疑这个东西有一定可能性!看见call 来自 sdologin ?sdologin 似乎这个东西让人联想到 游戏安全卫士? DragonNest\SDO\sdologin 这个路径。那就更有嫌疑了。点快捷键Alt+K看看堆栈如下
看见有几个来自DragonNe的调用, 这些前面写着DragonNe的就是来自程序 DragonNest.exe 自身的一些调用 我们一个个点进去看看。

发现 DragonNe.00406904 这一条调用看见 反汇编窗口出现我们要找的MutexDragonNest!!!

目标发现了,这就是相关建立互斥体的操作

我们直接改写成跳转到下面CreateMutex下面的那句代码去,不让它执行 CreateMutex 那么 MutexDragonNest 这个互斥体就会不存在,因为没有建立。

最后完成修改后保存......
运行一下游戏,- = 发现效果还不错

- =.........请不要私自乱搞,一切后果于本人无关...这仅仅是无聊小研究.
基谷防止多开的原理就是程序有互斥体....互斥体是神马东7 ? 通俗的理解就是 一个房间有两个门口都是同一种锁头,你只有一把钥匙,你要么从这个门进,要么从那个门进,你不可能分身同时一把钥匙开两个门,同时进。就是一种有你没他,有他没你的一种排斥形式的东7......
互斥体也叫Mutex,Windows建立互斥体所用的的函数叫 CreateMutexA 那么也就是说龙之谷要建立自己的互斥体,那么龙之谷也要通过这个函数实现。而龙之谷的互斥体的名字叫做 MutexDragonNest 用很多手动杀毒软件都可以看见它,也就是说一旦它被关掉了,那么龙之谷就可以再开多一次.....因为每次开启都会存在,那么就要每次都要先关闭一次,才能多开一次。

有没有办法能够不需要关闭它就直接就一直无限多开呢?傻瓜都知道啦,只要它一直都不存在,那么就可以呗。。。问题是= =你怎么才能让它一直都不存在呢?这是一个问题 - = 。。。。。。。
打开OD.....直接把基谷丢进去....对函数 CreateMutexA 下断点...神马是断点?就是说一旦基谷用到这个东西,程序就自动停止下来让你观察,命令bp CreateMutexA

然后程序运行过程中,开始被断
一看名字就感觉不像。好长,和我们的MutexDragonNest完全不大符合,直接排除

让程序继续运行又被断了下来陆陆续续我们看MutexName都不像是我们想要找的 MutexDragonNest
另外一个手动杀毒工具XueTr观察基谷当前进程的互斥体都陆续有了神马

可以看见这都是我们刚才放行的那些 互斥体 的名字,但是这些互斥体都和多开没有什么关系......
一直不停放行和观察一个可疑的位置出现了

从这个MutexName我们看见,XXXXX_PROCESS_MUTEX_XXXX 虽然- =我英语经常考试20多分,但是PROCESS这个单词是进程的我还是认得出的,PROCESS_MUTEX 就是进程互斥体的意思. 那么可疑怀疑这个东西有一定可能性!看见call 来自 sdologin ?sdologin 似乎这个东西让人联想到 游戏安全卫士? DragonNest\SDO\sdologin 这个路径。那就更有嫌疑了。点快捷键Alt+K看看堆栈如下
看见有几个来自DragonNe的调用, 这些前面写着DragonNe的就是来自程序 DragonNest.exe 自身的一些调用 我们一个个点进去看看。

发现 DragonNe.00406904 这一条调用看见 反汇编窗口出现我们要找的MutexDragonNest!!!

目标发现了,这就是相关建立互斥体的操作

我们直接改写成跳转到下面CreateMutex下面的那句代码去,不让它执行 CreateMutex 那么 MutexDragonNest 这个互斥体就会不存在,因为没有建立。

最后完成修改后保存......
运行一下游戏,- = 发现效果还不错

- =.........请不要私自乱搞,一切后果于本人无关...这仅仅是无聊小研究.