某讯的手游维护体系用的都是一套,在其官宣的手游加固功能中有一项宣传是对比较热门的Unity3d引擎的手游维护计划,其间对Dll文件的维护介绍如下, “Dll加固混杂针对Unity游戏,对Dll模块的变量名、函数名、类名进行加密混杂处理,有效提高静态剖析门槛”。

通过动态剖析了它的维护办法,通过改源码刷机的办法绕过了它的维护计划(也可通过hook libc.so中的execve函数绕过维护),接下来就能够直接运用GameGuardain这个神奇附加上去进行各种骚操作了。这儿主要讲一下怎么去从内存中获取Assembly-CSharp.dll 和 Assembly-CSharp-fristpass.dll文件。

绕过维护后,先发动GameGuardian,再发动相关游戏,在某讯的Logo刚好出现时附加到游戏上,待游戏进入到登录页面时,通过内存查找值的方法查找9460301(0x4D 5A 90 00)的十进制表明方法。这也是PE文件Dos头的特征码。查找过程和成果如下:

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

记载下第一个值和最终一个的值,接下来的dump过程需求(dump时,开始地址尽量比第一个值小,结束地址尽量比最终一个地址大,上下起浮的巨细尽量大于游戏中最大的Dll文件所占内存巨细)。

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

等待保存完毕今后就能够从手机上拉取到本地了。获取到文件的成果如下:

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

接下来可直接运用get_dll_from_bin.exe这个东西直接从一切的bin文件中dump出一切的dll文件。操作后可用dnSpy直接翻开一切的dll文件检查是否存在Assembly-CSharp.dll和Assembly-CSharp-fristpass.dll这两个文件。成果下图(本次获取到12个dll 文件):

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

东西获取到dll后直接运用数字命名,直接通过dnspy翻开看看是否有最终的方针dll。

获取到dll如下:

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

并不存在所需求获取的dll文件。后面通过剖析可知这套维护计划把Dos头的前128字节清空了。接下来就需求单个文件进行操作和修正了,运用010editor翻开文件,查找PE头的文件特征(50 45 00 00 4c 01 03 00)。然后通过查找到的方位往前检查128字节是否被清零,如果是先把正常的pe文件的前128个字节仿制,再往查找到的方位的往前128字节进行张贴修正即可。如图:

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

通过反复操作和修正后,再通过get_dll_from_bin.exe操作修正的bin文件即可。

通过操作后获取到如下的Dll:

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

通过与解包后的资源文件巨细相比较,3.dll巨细和Assembly-CSharp.dll相同。

12.dll巨细和Assembly-CSharp-firstpass.dll相同。

分别将3.dll 和12.dll文件拖入dnspy中,如图所示3.dll是方针文件Assembly-CSharp.dll:

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

12.dll是Assembly-CSharp-fristpass.dll:

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

到此,一切方针文件现已获取完毕。

排版有点渣,迁就看吧。主要是思路。望大牛轻喷。

最终 咱们共享个好用的东西。

运用ipaguard来对程序进行加固

代码加固是进一步维护应用的一种方法,通常通过特定平台来对应用进行加固处理。

这边以ipaguard为例,现在还在免费阶段,想薅羊毛的快快试试。

Ipa Guard是一款功能强大的ipa混杂东西,不需求ios app源码,直接对ipa文件进行混杂加密。可对IOS ipa 文件的代码,代码库,资源文件等进行混杂维护。 能够根据设置对函数名、变量名、类名等关键代码进行重命名和混杂处理,下降代码的可读性,添加ipa破解反编译难度。能够对图片,资源,配置等进行修正称号,修正md5。只要是ipa都能够,不限制OC,Swift,Flutter,React Native,H5类app。

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

所以就要运用到混杂器,混杂器是把里面的代码变量等信息进行重命名,这样可读性会变得非常差,接着,

到这儿,咱们完结了对代码的混杂,但是还没有进行加固,防止反编译,所以,请往下看

然后导入自己的包就能够了,这儿是流水式的走下来,所以只需求导入和导出就能够了,

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

添加单个文件,挑选好刚刚混杂后的包,然后你做的工作就是等,等待上传完–加固完–下载完–已完结,当到已完结的时分,说明这儿现已能够导出了,导出需求前面说到的自己创立的签名,这儿可是会用到的,如果不用,则包安装包可能会出现问题

挑选导出签名包,挑选签名文件,输入暗码,然后点击开始导出

怎么绕过某讯手游维护体系并从内存中获取Unity3D引擎的Dll文件

导出的包是通过混杂,通过加固比较安全的包了