【游戏提取/超详细记录向】关于unity游戏的资源提取所需资源及方法简介(AssetBundle及libil2cpp.so等解密)

方法一:AssetStudio提取(仅针对ab包及.assets、.boundle和.unity3d未加密的情况下)

1.在我们拿到一个游戏的安装包时,首先会疑惑如何打开。下载bandzipBandizip · Free zip, 7z, unzip, unrar Archiver · Fast and easy,这是一款非常方便的解压缩工具。安装后右键apk-压缩文件预览,即可打开apk包。当然你也可以直接右键解压,反正差不多(x)

2.unity文件一般会将ab包(.AssetBundle)放在assets文件夹下的目录中,如果没有就点开目录下的文件夹瞅瞅有没有。现在我们得到了ab包,可以开始进行提取了。

3.下载AssetStudioGitHub - Perfare/AssetStudio: AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.,解压后双击打开AssetStudioGUI.exe,file-Load folder打开assets(或者要是懒得找将整个包丢进去,如果你内存可以的话),加载完成后点开list,即可看到解压出来的资源。如果没有就是加密了,悲。如果要提取模型,选中文件在Export-Export All Assets导出fbx,一般情况来讲都是带骨骼和权重的,可以直接载入blender或其他3D软件编辑。提取其他资源就。。。自己探索一下,一时半会我也想不起来咋导了。不难。

方法二:DisUnity提取,还是不能解密

1.【旧的用法,不知道现在能不能用,仅作记录。实在需要请参考github上的用法。】(需要java8环境)游戏包\assets\bin\Data\Managed下找到UnityEngine.dll,在DisUnityGitHub - ata4/disunity at v0.4.0文件夹中cmd(文件路径栏输入cmd),extract包所在位置。

(没了)

以下是一些用法,来自github首页。别用5.0,5.0没有提取功能。

Usage

disunity <command> <file>

Note: depending on the platform, you may need to run disunity.bat (Windows) or disunity.sh (Linux/MacOS). In case the launch script fails, try java -jar disunity.jar.

Available commands

Command Purpose
dump Converts binary object data to human-readable plain text, similar to the binary2text tool shipped with the Unity editor.
dump-struct Like dump, but just for the structure information.
extract Extracts asset objects to regular files (.txt, .wav, .tga, etc.). See SUPPORT.md for a list of supported asset types.
extract-raw Extracts raw serialized object data. Could be useful for manual extraction if extract doesn't support the wanted asset type.
extract-txt Like dump, but writes the output to text files instead of the console.
extract-struct Like extract-txt, but just for the structure information.
learn Learns the structure information from the submitted files and stores any new structs in the database file structdb.dat. The database is required to deserialize standalone asset files, which usually don't contain any structure information.
info Outputs various information about assets and asset bundle files.
info-stats Outputs class usage statistics for asset files.
bundle-extract Extracts all packed files from asset bundles.
bundle-inject Injects files previously extracted with the bundle-extract back into the asset bundle.
bundle-list Lists all files contained in asset bundles.
split Attempts to split an asset file into multiple smaller asset files.
list Lists all asset objects in a tabular form.

Extract all supported assets from a bundle file:

disunity extract Web.unity3d

Extract all packed files from two bundle files:

disunity bundle-extract episode1.unity3d episode2.unity3d

Extract textures from the asset file sharedassets0.assets:

disunity extract -f texture2d sharedassets0.assets

Dump web player configuration from the file named Web.unity3d:

disunity dump -f playersettings Web.unity3d

Show information about all asset files in the directory "assets":

disunity info assets\*.asset

进阶版-加密后/dll提取方法

ab包解不出来,那就转战dll。

方法一:如果dll没加密,直接dump dll文件

Assembly-CSharp.dll,一般在assets\bin\Data\Managed或bin\Data\Managed中,丢.net查看源代码,尝试搜索http,找到的网址可能可以下载资源。

如何确定是否加密呢?如果后缀变成了data,并且在试图用.net打开时,显示

"Assembly-CSharp (this could change, depending on the name of the file), File is not a portable executable. DOS header does not contain 'MZ' signature."

方法二:使用decrypt在安卓虚拟机上内存提取,版本较旧的或许可以尝试,但我失败了,问题出在decrypt版本过旧。不推荐。

教程How to decrypt an encrypted .dll file with GDB gcore (Root only) - Platinmods.com - Android & iOS MODs, Mobile Games & Apps我不多说,没经验。

方法三:一般用于dll加密成了dat后。使用GameGuardianGameGuardian - Official Downloads - GameGuardian搭配安卓虚拟机提取内存中的dll 

1.继续使用dll,简单Unity 3D游戏加密dll文件提取_psych1的博客-CSDN博客_3d游戏文件怎么提取

后使用get_dll_from_dumped_bin.exe https://wwen.lanzout.com/i5Jz00kckfzi
密码:futj 转换为dll,返回方法一继续。

分支-libil2cpp.so和global-metadata.dat的解密和提取

未加密:

使用Il2CppDumperGitHub - Perfare/Il2CppDumper: Unity il2cpp reverse engineer,先载入so再载入dat,然后输入包所使用的unity版本号,选择Auto(Plus)模式,解包完毕。我建议大家来看这个老师的教程,非常详细贴心。

记一次unity游戏分析 | Mario

(报错就是加密,别想了,乖乖看下一个方法。)

已加密:

Il2CppDumper的说明有写,如果有加密Il2CppDumper是不能使用的,需要使用作者的另一款工具Zygisk-Il2CppDumperGitHub - Perfare/Zygisk-Il2CppDumper: Using Zygisk to dump il2cpp data at runtime配合MagiskGitHub - topjohnwu/Magisk: The Magic Mask for Androa

一起使用。教程如下。How to use Zygisk-Il2CppDumper to dump Il2Cpp games (Magisk 24 and up) - Platinmods.com - Android & iOS MODs, Mobile Games & Apps 

首先你要有一台root的手机,但我没有(目移)所以虚拟机是最好的选择,但vmos的root我搞不懂 ......所以还是祈祷没加密吧,目前在研究另一个方法,研究成功会进行更新。

其他我看不懂但是貌似可以用的方法

手游之u3d之global-metadata.dat解密 - CodeAntennaglobal-metadata.dat解密

[分享]global-metadata.dat,libil2cpp.so解密修复-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com(正在研究的方法,目前最有希望) 

工具推荐

010 Editor - Binary Template Information(UnityMetadata.bt,不知道干啥用的哪里来的,反正应该有用,嗯。)

SweetScape Software Inc - Download 010 Editor(010 Editor,比较好用的十六进制/二进制编辑器。)

.NET Reflector 8.0 Download - Reflector.exe(.Net编辑器,编辑源码)

MT管理器(我离开MT会死,太强了。)

https://developer.android.com/studio(Android Studio,安卓开发工具。)

Windows 终端安装 | Microsoft Learn(终端,可以说是转储最重要的工具。)

最后的话

本文章仅作交流学习用,请大家不要提取游戏资源做违法乱纪的事情,学习者的任何行为与作者无关,请不要抓我,追究违法乱纪的人的责任就好(我是学生别抓我)。

【在别人readme里抄了几句话】请勿将这些东西用于18禁作品,极端宗教宣传,血腥恐怖猎奇作品,人身攻击等。请勿用于商业用途。他人使用本模型所造成的一切不良后果,不由模型作者与平台承担,请向使用者追究全部责任。

所有引用文章、工具皆已注明地址,感谢所有开发者!

猜你喜欢

转载自blog.csdn.net/qq_63149894/article/details/128591919
今日推荐