前言:

每天工作都很无聊,总想找点乐子,但是毛乐子都没有。

找个游戏玩吧,挂机的游戏。

找到了,这游戏叫做。。。梦幻西游手游。丁三石的游戏。。。

由于我手机是个功能机,

所以,下载个模拟器来玩吧,

下载了之后,安装了之后,启动游戏之后,CPU巨卡,可能我得电脑有点老。

怎么办,看到手游官网上竟然写着有个PC端。

OK,弄下来玩玩。

PC端就是不一样,截面很细腻,也超级不卡,感觉不错,

但是我有2个号阿,怎么办,

再开一个客户端,

SB了,告诉我已经有了,问我怎么办,要不要杀了那个。

当然不能杀,不然还叫双开么,

OK,本文开始了。

正文:

墨迹了半天,终于开始了。

(我的目的不是干掉它,只是为了多开游戏,所以这里只作简单分析,我只需要一个IDA)

直接两次打开客户端,会提示这么个情况,

有提示,不错,先去找提示相关的字符串,然后再找字符串调用的位置。。。

但是察看了字符串资源之后,发现,字符串都不是ANSI的,IDA年老体衰,精力不足,查不到字符串,放弃

MessageBox,简单办法解决,直接去找MessageBox的调用就行了,多简单

一共就这么几处,玉皇大帝怜悯我啊。。。

前面两个,调用处,看起来就不像,到第三处调用的时候,就挺像的了

看一下参数2的字符串

第四处调用的字符串,是这样的,找到了,对吧。

好了,我们常规的解决办法就是,梳理分支,然后往里面写jnz jz 相关的跳转,避过这种类似的错误提示了吧,

但是,我不想直接修改游戏文件这么干,

我所担心的:

1:程序有签名,直接改程序,会破坏签名。

2:如果这个程序有自身的完整性校验,这不是白折腾么。

3:其他我可能意识不到的问题。

我想怎么干,那。。。当然是找到源头,看它是怎么工作的,然后想办法避过去。。。

继续分析,

其实,到这个弹窗这块,就已经注定是被检测出来已经多开了,

所以,慢慢往回找代码,还好这个游戏客户端是x86的,而IDA对x86的F5支持很好,

往前找源头,不远处会找到

这样一处位置,双击进入函数可以看到,

这,应该就是单实例判断,

第一个函数,是用一种古老的方法,创建进程列表快照的方法遍历进程,然后判断进程路径名字,如果找到指定的,就不调第二个函数了。。。

第二个函数,更奇葩,用枚举进程的方法,来遍历进程,判断路径名字。。。

只要安全越过这里的获取,再越过后面的判断,就可以实现多开了,真容易。。。

慢慢往后看,

有这么一块代码,这是在做什么,

看到这个字符串“NetEase(Hangzhou) Network Co. Ltd.”,我猜,就是在验证证书,

进入前面的那个函数里面,往深了查阿找啊,

会看到 CertFindCertificateInStore 这种相关的函数,OK,证书相关,

我得目的不是干掉它,所以我不关心这里,

继续往后看,

走到大函数的尽头,

这里就是真正启动游戏之前的步骤了

进入函数,激动人心的时刻到了

挺好笑的,

LoadLibrary GetProcAddress 然后 call

只是转接了一下参数,

原来这东西,这么低级阿。

从头到尾,分析结束。

最终结论,

可行的最简单的多开方法:

直接模拟exe 的功能,直接加载DLL,然后调用函数,直接可以解决问题。

后续处理:

其实,前面几步就完了?

确实完了,能用了,但是能保证不出问题么,这个真的不好说,

后续需要加几步处理,

怎么加处理呢,

根据观察,可以看到目标DLL的接口固定,并且参数极少,而且传递的信息几乎为无用信息,

所以可以想象,DLL有极低可能直接根据内存来判断当前进程为可信进程,

所以,如果DLL真的这么做了,那么很有可能是通过进程对应的本地文件来判断,

如何欺骗DLL呢,这里我们需要保证原有的exe文件存在,并且证书有效,

然后我们以某些方法进入目标exe,夺取控制权,

简单的方法有3种。

1,直接DLL劫持,进入目标进程,镜像替换或者给代码打热补丁。

2,断点注入,镜像替换或者给代码打热补丁。

3,调试注入,镜像替换或者给代码打热补丁。

其实,从start函数开始看的话,看得出来  sub_40A830  这个函数就是WinMain函数,

因为它的调用处是这样的

而 v7 是什么,

v7 就是 

命令行参数

WinMain的原型是什么样的。

int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
);

就是这样的

好了,工作结束。

实际上分析这个东西,加上写出代码测试,大致用了我两个小时,毕竟我不算成手,而且我的代码是C的,

估计成手分析这个的话,也就半个来小时就完事了。

附记:

其实,如果有现成的工具,可以隐藏掉已经启动的进程的话,应该也行,

在中间,

这里,实际上还有一处mutex判断,但是它不影响是否可以多开,

它只会影响调用DLL的时候传的参数。

最简单的方法还是什么都不管,直接写代码调用DLL的函数,

不过,估计三石帮客户端有蜜罐功能,很多很多很多年以前,端游封外挂,就是钓鱼执法,然后封的。

转载于:https://www.cnblogs.com/suanguade/p/5646776.html

我要多开梦幻手游PC端(梦幻手游PC端多开的简单分析及实现办法)相关推荐

  1. android模拟器玩手游,电脑上玩手游PC安卓模拟器哪个好用?哪个手机模拟器最好...

    电脑上玩手游PC安卓模拟器哪个好用?哪个手机模拟器最好 作者:阿姆斯特朗雷时间:2020-03-24 分享到: 在电脑上玩手游,用哪个PC安卓模拟器好用? 在电脑上玩手游,用哪个PC安卓模拟器好用?现 ...

  2. 梦幻群侠传5帮派修炼_梦幻封妖传5门派技能介绍 | 手游网游页游攻略大全

    发布时间:2015-12-25 手游封妖任务及奖励介绍,手游封妖任务怎么做有什么奖励那? 活动时间:全天 参与次数:10次/天 任务形式:组队或单人 等级限制:达到25级: 任务描述:挖藏宝图后可能会 ...

  3. 手柄映射键盘_如何使用运动加加TAP手柄在PC上玩手游

    运动加加TAP手柄,不仅仅是一款体感手柄,同时也是一款多功能的通用游戏手柄,支持智能电视.电视盒子,手机.PC等各种平台. 运动加加TAP手柄可以一键切换为标准游戏手柄,在标准游戏手柄模式下,左手触摸 ...

  4. 天地劫pc版不显示服务器,天地劫手游PC版无法运行怎么办 PC版无法进去解决办法?...

    核心提示:天地劫手游PC版无法运行怎么办 PC版无法进去解决办法?,相信很多小伙伴对这一块不太清楚,接下来小编就为大家介绍一下天地劫手游PC版无法运行怎么办 PC版无法进去解决办法?,有兴趣的小伙伴可 ...

  5. 《梦幻花园》之后Playrix新消除手游是《梦幻动物园》,你玩么?

    在很多人的印象里,手游收入榜头部品类中重度化似乎是延续了多年的趋势,MOBA.MMO.SLG和战术竞技等品类都有大作出现.不过,轻度休闲游戏近几年似乎也重新回到了巅峰,除了被大多数人熟知的<糖果 ...

  6. dnf服务器消息,DNF:手游延期一周年,阿拉德之怒紧急加开服务器,上线还排队...

    国服DNF手游很早就取得了版号.但是由于一直处于测试阶段.仅仅是体验服开放.当正式服务即将登陆的时候,却被提前紧急下线.官方给出的消息是由于防沉迷系统失误.但实际上却是由于游戏测试版本和正式版本相差太 ...

  7. 完美世界手游服务器信息,完美世界手游微信117区互通-天月开服时间表_完美世界手游新区开服预告_第一手游网手游开服表...

    2019-12-27 10:00 微信互通-赤炼 已经开服 10:00 手Q互通-仙志 已经开服 2019-12-13 10:00 微信互通-金武 已经开服 10:00 手Q互通-黑曜 已经开服 20 ...

  8. 街头篮球手游服务器响应超时,街篮2打不开是怎么回事 网络连接超时的解决方法...

    街篮2是一款3v3王牌篮球手游,延续了前作的优秀操控手感,同时保留了核心竞技体验,一些小伙伴们在下载了这款游戏之后,却发现街篮2打不开是怎么回事,下面就来介绍一下游戏打不开.网络连接超时的解决方法. ...

  9. 我叫mt4最新服务器,我叫MT4手游开服表_我叫MT4手游开服时间表_新服新区预告_第一手游网...

    2018-11-07 10:00 QQ互通84区巡林者 已经开服 10:00 微信互通186区战争古树 已经开服 2018-11-01 10:00 微信互通185区世界之树 已经开服 10:00 QQ ...

  10. 我叫mt2微信新服务器,我叫MT2手游开服表_我叫MT2手游开服时间表_新服新区预告_第一手游网...

    2020-10-15 12:00 新服49区 奥特兰克 已经开服 2020-09-10 12:00 新服47区 热砂港口 已经开服 2020-08-20 12:00 新服46区 赤色石窟 已经开服 2 ...

最新文章

  1. spire.doc 转html,c# html 转Word--Spire.Doc
  2. ACCESS数据库连接字符串
  3. 浅谈JS的数组遍历方法
  4. 198. House Robber
  5. Spring DI(依赖注入)
  6. 【英语学习】【加州教材】【G1】【科学】Science目录及术语表
  7. [BZOJ 3531] [Sdoi2014] 旅行 【离线+LCT】
  8. java标识符的介绍_Java标识符所有关键字
  9. zabbix源码安装
  10. Ant—使用Ant构建简单Java项目(二)
  11. wlanconnect无法连接wifi_苹果iphone12无法连接wifi怎么回事 解决方法分享
  12. 机器学习笔记(二):矩阵、环境搭建、NumPy | 凌云时刻
  13. bin文件转dat文件
  14. 什么是BOM?BOM和DOM的区别
  15. 涉密计算机怎么更新补丁,当需要将病毒库、系统补丁程序等导入到涉密信息系统时采用什么方式...
  16. 3dmax怎么清理注册表?3dmax注册表怎么删除干净?
  17. java 留言板源码_jsp+servlet+javabean实现简易留言板(包含数据库文件)
  18. NR PDCCH CCE to REG 交织图解
  19. trojan-gamethief.win32.magania.alsz病毒解决方案
  20. java tab标签_js-tab选项卡

热门文章

  1. Winrm+python远程连接windows执行命令
  2. scrapy爬虫项目的建立
  3. scrapy爬虫简单实例
  4. C++Builder的基本功能
  5. 【每月总结】2021年6月
  6. 老司机教你如何优雅地完成一个小项目测试
  7. OK6410移植UBOOT
  8. [分布式系列]Gossip协议
  9. 手机模拟器安装证书抓包
  10. 一文讲解5G、互联网、物联网、大数据、人工智能的关系