首页 > 系统相关 >如何绕过某讯手游保护系统并从内存中获取Unity3D引擎的Dll文件

如何绕过某讯手游保护系统并从内存中获取Unity3D引擎的Dll文件

时间:2023-11-30 17:58:00浏览次数:29  
标签:Unity3D Assembly 混淆 dll 文件 CSharp 手游 Dll

 某讯的手游保护系统用的都是一套,在其官宣的手游加固功能中有一项宣传是对比较热门的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头的特征码。搜索步骤和结果如下:

 

 

 

 

 

 

 

 

 

 

记录下第一个值和最后一个的值,接下来的dump步骤需要(dump时,开始地址尽量比第一个值小,结束地址尽量比最后一个地址大,上下浮动的大小尽量大于游戏中最大的Dll文件所占内存大小)。

 

 

 

 

 

 

等待保存完毕以后就可以从手机上拉取到本地了。获取到文件的结果如下:

 

 

 

 

 

 

接下来可直接使用get_dll_from_bin.exe这个工具直接从所有的bin文件中dump出所有的dll文件。操作后可用dnSpy直接打开所有的dll文件查看是否存在Assembly-CSharp.dll和Assembly-CSharp-fristpass.dll这两个文件。结果下图(本次获取到12个dll 文件):

 

 

 

 

 

 

 工具获取到dll后直接使用数字命名,直接通过dnspy打开看看是否有最终的目标dll。

获取到dll如下:

 

 

 

 

并不存在所需要获取的dll文件。后面经过分析可知这套保护方案把Dos头的前128字节清空了。接下来就需要单个文件进行操作和修复了,使用010editor打开文件,搜索PE头的文件特征(50 45 00 00 4c 01 03 00)。然后通过搜索到的位置往前查看128字节是否被清零,如果是先把正常的pe文件的前128个字节复制,再往搜索到的位置的往前128字节进行粘贴修复即可。如图:

 

 

 

 

 

 

 

 

 

 

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

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

 

 

 

 

 

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

12.dll大小和Assembly-CSharp-firstpass.dll相同。

 

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

 

 

 

 

 

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

 

 

 

 

 

到此,所有目标文件已经获取完毕。

 

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

最后 我们分享个好用的工具。

 使用ipaguard来对程序进行加固

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

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

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

 

 

 

 

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

到这里,我们完成了对代码的混淆,但是还没有进行加固,防止反编译,所以,请往下看

然后导入自己的包就可以了,这里是流水式的走下来,所以只需要导入和导出就可以了,

 

 

 

添加单个文件,选择好刚刚混淆后的包,然后你做的事情就是等,等待上传完--加固完--下载完--已完成,当到已完成的时候,说明这里已经可以导出了,导出需要前面提到的自己创建的签名,这里可是会用到的,如果不用,则包安装包可能会出现问题

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

 

 

 

 

导出的包是经过混淆,经过加固比较安全的包了

标签:Unity3D,Assembly,混淆,dll,文件,CSharp,手游,Dll
From: https://www.cnblogs.com/gddg/p/17867912.html

相关文章

  • 如何绕过某讯手游保护系统并从内存中获取Unity3D引擎的Dll文件
    ​ 某讯的手游保护系统用的都是一套,在其官宣的手游加固功能中有一项宣传是对比较热门的Unity3d引擎的手游保护方案,其中对Dll文件的保护介绍如下,“Dll加固混淆针对Unity游戏,对Dll模块的变量名、函数名、类名进行加密混淆处理,有效提高静态分析门槛”。 通过动态分析了它的保护......
  • Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)
    ​ Unity3D导出的apk进行混淆加固、保护与优化原理(防止反编译)目录 前言:准备资料:正文:1:打包一个带有签名的apk2:对包进行反编译3:使用ipaguard来对程序进行加固 前言:对于辛辛苦苦完成的apk程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决Unity打包出来的包进......
  • 调用labview生成的dll文件中包含 labview的2维数组作为输出输出时,如何操作
    以前使用python调用labview生成的dll时,如果直接使用labview本身的二维数组,程序就会自己崩溃,也无法使用,但由于二维本质就是一维,所以用的一维加行列可以解决这个问题,绕开了这个labview二维数组的结构但是最近有研究了一下,发现可以解决这个问题,现在记录如下,首先,从网上找到了一......
  • Qt导出与加载dll
    先开篇,后期更新整理 1、Qt插件开发-夕西行-博客园(cnblogs.com)2、Qt插件开发方式-夕西行-博客园(cnblogs.com)2、Qt插件开发-夕西行-博客园(cnblogs.com) ......
  • python 加载dll的类
    Python加载DLL的类在Python中,我们可以使用ctypes模块来加载并调用DLL(DynamicLinkLibrary)文件中的函数。DLL是一种包含可供程序调用的函数和数据的动态链接库。通过加载DLL,我们可以在Python程序中使用其他编程语言编写的功能强大的库。本文将介绍如何使用Python加载DLL的类,并提......
  • office the language DLL 'VBE7INTL.DLL' is not be found
    其实是缺少vba,安装组件就可以了解决方案:在卸载程序的面板中,找到office,右键选择更改,选择添加或删除功能,勾选如下两项就可以了记得关掉office后再打开就好了......
  • Unity3d中使用sketchup 3dwarehouse模型
    1、选择菜单【文件】【导出】【三维模型】,打开导出对话框。选择保存类型为“*.fbx”。2、进行选项配置,“几何图形”类别勾选【导出两边的平面】【分离不连接的平面】,“材料”类别勾选【导出纹理映射】,“比例”类别中勾选【切换yz坐标(Y向上)】,单位选择【米】点击【确定】按钮。3......
  • 9.9 Windows驱动开发:内核远程线程实现DLL注入
    在笔者上一篇文章《内核RIP劫持实现DLL注入》介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的,本章将继续探索全新的注入方式,通过NtCreateThreadEx这个内核函数实现注入DLL的目的,需要注意的是该函数在微软系统中未被导出使用时需要首先得到该函数的入口地址,NtCreateThreadEx......
  • 剑荡三界手游架设详细教程
     前言3D仙侠手游可直接开服,最新几乎完美的端,一键内充一键修改ip小白专用想体验经典霸服快乐吗?想体验满级VIP的尊贵吗?想体验一招秒杀的爽快吗?各种极品装备、翅膀、宠物通通给你,剑荡三界!本文讲解梦剑荡三界游戏的架设教程,想研究游戏如何实现,体验游戏中秒天秒地秒空气......
  • 什么是 Windows 操作系统的 DLL 文件
    .dll文件指的是动态链接库(DynamicLinkLibrary)文件。这些文件包含可被程序在运行时调用的代码和数据。它们是Windows操作系统中重要的组成部分,允许程序共享资源,提高效率并降低重复编码的需要。.dll文件允许程序模块化,以便多个应用程序可以共享它们,这样便于维护和更新。在本文中,我......