草庐IT

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

Ultramarineeeee 2023-09-08 原文

方法一: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

CommandPurpose
dumpConverts binary object data to human-readable plain text, similar to the binary2text tool shipped with the Unity editor.
dump-structLike dump, but just for the structure information.
extractExtracts asset objects to regular files (.txt, .wav, .tga, etc.). See SUPPORT.md for a list of supported asset types.
extract-rawExtracts raw serialized object data. Could be useful for manual extraction if extract doesn't support the wanted asset type.
extract-txtLike dump, but writes the output to text files instead of the console.
extract-structLike extract-txt, but just for the structure information.
learnLearns 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.
infoOutputs various information about assets and asset bundle files.
info-statsOutputs class usage statistics for asset files.
bundle-extractExtracts all packed files from asset bundles.
bundle-injectInjects files previously extracted with the bundle-extract back into the asset bundle.
bundle-listLists all files contained in asset bundles.
splitAttempts to split an asset file into multiple smaller asset files.
listLists 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禁作品,极端宗教宣传,血腥恐怖猎奇作品,人身攻击等。请勿用于商业用途。他人使用本模型所造成的一切不良后果,不由模型作者与平台承担,请向使用者追究全部责任。

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

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

  1. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  2. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  3. ruby-on-rails - Rails 5 Active Record 记录无效错误 - 2

    我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa

  4. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  5. 区块链之加解密算法&数字证书 - 2

    目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非

  6. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  7. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  8. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  9. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  10. ruby - Ruby 中的单 block AES 解密 - 2

    我需要尝试一些AES片段。我有一些密文c和一个keyk。密文已使用AES-CBC加密,并在前面加上IV。不存在填充,纯文本的长度是16的倍数。所以我这样做:aes=OpenSSL::Cipher::Cipher.new("AES-128-CCB")aes.decryptaes.key=kaes.iv=c[0..15]aes.update(c[16..63])+aes.final它工作得很好。现在我需要手动执行CBC模式,所以我需要单个block的“普通”AES解密。我正在尝试这个:aes=OpenSSL::Cipher::Cipher.new("AES-128-ECB")aes.dec

随机推荐