原神反调试分析

打开CE,打开原神启动器。
至此,游戏未加载驱动。启动器可以被CE正常读写。
在这里插入图片描述

打开原神,CE中选择YuanShen.exe,发现原神并不能被读写。
在这里插入图片描述

尝试分析不能读写的原因。

CE调用的读取内存函数是NtReadVirtualMemory
猜测有三种可能
1.NtReadVirtualMemory被HOOK
2.ObCallBack
3.infinityhook
第一种情况因为X64系统PatchGuard的存在排除。当然VT也是有可能的,现在先不考虑。
第二种情况是最有可能的。
第三种情况感觉不大靠谱。

为了验证猜测,打开ARK工具。
在这里插入图片描述好家伙,果然注册了线程和进程的ObCallBack,同样也注册了下图三个回调用于收集信息云云
在这里插入图片描述
直接把内存dump下来,修复好,直接拖IDA。
直接定位到Process ObCallback函数。
在这里插入图片描述
继续跟进。
F5大法失败。只是为了初步分析,没必要看头疼的汇编,而且Thread和Process的处理八九不离十,去康康Thread先

进Thread ObCallback F5

在这里插入图片描述

发现这里判断了是否操作的是游戏进程就把句柄读权限抹掉。
抹除写权限之前先判断了操作进程是不是csrss.exe如果是就不抹除。

因此可以利用更改进程名为csrss.exe来绕过写内存ObCallback保护,但还是没有读的权限。

游戏是通过句柄降权的方式保护游戏,那么我们也可以注册ObCallback直接把权限升回去。
在我们的回调中执行,当然执行之前需要判断操作游戏的是不是我们的调试器,如果不是就别把提权了。

pOperationInformation->Parameters->CreateHandleInformation.DesiredAccess = PROCESS_ALL_ACCESS_THREAD;
pOperationInformation->Parameters->CreateHandleInformation.OriginalDesiredAccess = PROCESS_ALL_ACCESS_THREAD;

加载驱动后上游戏,发现CE读出了错误的内存。猜测是用了假的CR3导致读了错误的物理页
在回调中读取CR3,与eprocess中的DirectoryTableBase进行比较发现并不相同。哦吼

1: kd> dt _KPROCESS
nt!_KPROCESS+0x000 Header           : _DISPATCHER_HEADER+0x018 ProfileListHead  : _LIST_ENTRY+0x028 DirectoryTableBase : Uint8B

那就纠正回去。

if (MmIsAddressValid((PVOID)((ULONG64)pe + 0x28))){if (__readcr3() != *(PULONG64)((ULONG64)pe + 0x28)){PULONG64 FakeCR3 = Mapped_Memory_Addr(*(PULONG64)((ULONG64)pe + 0x28), 0x1000, 0);PULONG64 TrueCR3 = Mapped_Memory_Addr(__readcr3(), 0x1000, 0);if (FakeCR3[0] != TrueCR3[0]){_disable();if (FakeCR3 != NULL && TrueCR3 != NULL){RtlCopyMemory(FakeCR3, TrueCR3, 0x1000);}MmUnmapIoSpace(FakeCR3, 0x1000);MmUnmapIoSpace(TrueCR3, 0x1000);_enable();}}}

上游戏测试。已经能显示正常数据了。至此读写保护绕过。
PS:禁止读写的保护在后面分析驱动的时候我是没发现痕迹(我可能太菜了)。
在这里插入图片描述
有读写权限了,VEH可以正常附加调试。当然这不代表没有检测,至少硬件断点没有处理,还是很容易利用NtGetContextThread检测的。
PS:瞄了眼驱动发现了遍历进程模块基址、名称,并将信息返回给R3层的代码,想不封号VEH调试、注入估计还是得处理下。当然还有其他检测。
在这里插入图片描述
CE换成Windows调试器。调试直接闪退。看遍了驱动代码也没发现在哪里有能阻止调试器附加的地方。驱动层先放着,去康康用户层

想了想调试流程,发现用户层关键代码被处理的可能性很大,直接扫描HOOK,发现DbgUiRemoteBreakin被处理了。
在这里插入图片描述
此处跳转到了原神的代理函数。代理函数会执行记录信息并退出游戏操作。

无法附加的原因找到了,直接恢复HOOK。在这里插入图片描述调试器成功附加,并在此处下内存断点,查找校验。
在这里插入图片描述
并未发现校验。

至此用户调试器已经能正常附加。想要实现不封号调试还需处理其他检测,例如校验
PEB+2、NtQueryInformationThread等等。

下面粗略讲讲关于内核调试器检测
在这里插入图片描述驱动在这里创建了个线程,跟进去
在这里插入图片描述

发现驱动通过KdDebuggerEnabled置0,调用 KdDisableDebugger 实现禁用双机调试。把调用KdDebuggerEnabled的KdDebuggerEnabled操作移位即可轻松绕过。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44401.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于原神抽奖概率的简要分析

序言 最近迷上了原神这款游戏,趁着保研完,肝了两个星期,也氪了一些金。先不谈这款游戏可玩性有多高,但论氪金强度算是我从小到大玩的游戏中,能排得上第一的了。 对于这种寸卡寸金的游戏,如何在无穷无尽的…

CAD教程:如何将Excel数据快速导入CAD图纸

在平时的设计工作中,为了图纸内容的丰富性,通常会在里面添加一些元素,使得数据更加的完善,那我们想在CAD图纸中添加一份Excel数据表,徒手绘制那就肯定是太过于麻烦了,那怎么才能省时省事呢?这个…

CAD绘图软件中如何将图纸分享给其他人

当我们在CAD绘图软件中打开一张图纸进行查看的时候,查看完成后,在CAD绘图软件中如何将图纸分享给其他人,具体要怎么来进行操作呢?相信很多的小伙伴们都想要知道,那下面小编就来教教大家具体的操作方法吧。 第一步&…

怎么将手机上保存的CAD图纸发送给好友

现在有很多的工作我们也可以在手机中完成,就比如说我们再收集中将图纸进行查看之后保存了下来,之后同事需要使用到这张CAD图纸文件。那么我们就可以将图纸发送给好友。怎么将手机上保存的CAD图纸发送给好友,下面我们一起来看看。 步骤一&…

dat文件导入cad画图步骤_图说CAD|多文件、多布局图纸批量打印设置的8个关键步骤...

在AutoCAD中,Publish(发布)功能具有批量打印图纸的功能:1. 以读取预设页面设置的方式进行打印,可直接打印为一套图纸电子文件,也可以打印为单张图纸电子文件。2. 支持批量自定义图纸名称指定。3. 可对发布图纸内容进行增减、排序。…

怎么把CAD表格转换成Excel表格?CAD表格导出教程

有些小伙伴在使用CAD软件绘制图纸的过程中,想要将CAD表格导出为Excel表格时不知道该如何操作,浩辰CAD软件中提供了CAD表格转Excel功能,可以快速将CAD中由线和文字构成的表格转换成Excel表格。下面就让小编来给大家介绍一下浩辰CAD给排水软件中…

计算机接口cad图,管道接口CAD平面图怎么画

回答: CAD怎么画钢琴平面图 CAD怎么画出钢琴的平面图呢?很简单的,有需要的朋友动手试试吧。 1、启动中望CAD软件,执行“矩形”命令(rec),绘制1575mmX230mm和1575X50mm的直角矩形。 2、执行矩形命令和移动命令(M),绘制出…

cad快速看图软件免费版(手机在线cad快速看图)

很多机械设计师日常工作过程中涉及到多种格式的cad图纸,cad图纸大多都需要cad设计软件才能打开,然而很多小伙伴并没有下载相应的cad设计软件,这种情况下如何进行cad快速看图呢? 今天小编为大家推荐一款cad快速看图软件免费版&…

CAD批量打图精灵10.0入门教程

简介 在工程制图中,往往有大量的图纸需要打印或转为PDF,可能是一个dwg文件里有多张图纸,或是多张图纸分散于多个dwg文件。常规的打印方法是,逐个手工框选打印,操作单调且费时。有没有更好的方法呢?CAD批量…

这样的图像在CAD怎么画呢?

这期来说一下用CAD怎么绘制这样的图形。 目标图 操作工具 操作系统:Windows10 CAD软件:CAD梦想画图 步骤 1.首我们使用圆(C)命令画一个半径为50的圆,如下图所示: 画圆 2.然后使用多边形命令画一个以圆…

CAD制图初学入门教程:一键解决CAD图纸杂乱

纵横交错的线条,星罗棋布的图形,错综复杂的标注…一看到复杂的CAD图纸,就感到头晕眼花,不知所措。哪位大神能指点迷津?如何让复杂的CAD设计「简单化」?新人设计师在面对复杂的CAD图纸项目时,时常…

cad看图怎么看?一键查看方法说明

CAD怎么看图?CAD是我们日常办公学习中经常接触到的软件之一,越来越多的人即使非相关专业也在学习CAD使用的方法技巧。有时我们接收到CAD文件后,没有合适的软件可以打开它就有点麻烦,今天给小伙伴们说一个快速看图的方式。 一些CAD…

不会画建筑CAD图纸?建筑CAD设计全流程解析打包送给你!

建筑CAD图纸通常比较复杂,但千里之行始于足下,当我们要绘制一张建筑CAD图纸时,应当怎么着手呢?本CAD教程整理了相关绘图流程解析打包送给你! 从建筑CAD图纸内容上来划分,图纸的空间设计包括平面图、立面图、…

cad查看_微信接收图纸dwg怎么打开?如何手机查看CAD图纸,三步免费教你

如果微信上接收到CAD图纸,第一想法是什么? 如何进行打开? 都知道CAD图纸文件难以打开更是难以进行编辑,很多情况下都是必须要使用电脑才能够进行打开,想要在手机上打开dwg图纸文件应该怎么操作呢? 今天这里…

CAD手机看图中怎么将编辑好的图纸文件微信发送给其他的人?

CAD手机看图中怎么将编辑好的图纸文件微信发送给其他的人?现在有了手机相关的CAD辅助软件,我们可以轻松的进行查看编辑图纸,就算是没有电脑,也不会存在限制,那么在手机上,我们要是将图纸编辑好之后&#xf…

cad看图软件哪个更好用(免费cad看图软件推荐)

对于机械设计师来说,常常需要查看大量的CAD图纸,但是很多设计师并不在每台电脑上都安装了相应的CAD软件。这使得在线查看CAD图纸成为了一项刚性需求。为了解决这一问题,市场上涌现了许多CAD看图软件。但是,对于这些软件来说&#…

CAD教程:CAD建筑户型图纸还能这么画?

五一节后没精神?浩辰CAD软件助你高效开工!上面这幅CAD户型图,你临摹需要多久?1小时?或者更久?今天小编给大家分享一个CAD教程在10分钟内,快速画完这张CAD户型图! CAD绘图教程 绘图…

一键在Web端把CAD图自动分割成多张图纸并导出子图或图片

前言 ​ 在实际中,一个CAD文件中往往存放多张图纸,有时需要这些图纸分开,单独保存或显示。以往的做法是在cad中人工进行处理。今天小编教您在web端一键把CAD图自动分割成多张图纸并能把每个子图导出成单独的dwg文件或保存成图片。 例如要处…

PDF图纸怎么导入CAD中?尝试这样操作一下

做工程或园林等设计的小伙伴应该比较常见这个问题,由于每天接触CAD图纸文件,不管是保存还是和其他同事之间的传输分享,直接使用CAD源文件的话会比较麻烦,对方不一定时刻能在电脑前,况且不同版本的图纸和工具还有兼容问…

CAD布局图纸导出为模型图纸

有些CAD图纸是在布局空间中绘制的,但是不习惯在布局中绘制图形的话,怎么能够CAD布局图纸转换成模型中的图纸呢?今天就用CAD梦想画图软件来操作一次。 1.模型空间下的CAD图纸 模型图纸 2.布局空间下的CAD图纸 布局图纸 3.操作方式 ①&…