【逆向工程】破解unity的安卓apk包

先了解一下普通apk包的逆向方法(无加密或加壳)

开发环境:

  1. 操作系统:windows

解apk包

  1. 下载工具:apktool【Install Guide | Apktool】

  2. 按照文档说的操作就行,先安装java运行时环境【我安装的是jre-8u441-windows-x64】,在系统环境变量里添加【JAVA_HOME】

  3. 下载批处理【https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat】

  4. 在批处理所在路径下,打开Windows命令行(或打开命令行,cd到路径下)执行代码

    bash 复制代码
    apktool d xxx.apk
  5. 导出的路径就在执行命令的路径下,里面的AndroidManifest.xml可以打开直接查看了,没有经过解析的是二进制形式,无法直接查看。

  6. 参考1:记录几种获取AndroidManifest.xml文件的方式 - 火线 Zone-安全攻防社区

  7. 参考2:安卓逆向_2 --- Androidkiller、apktool、jadx、jeb、gda-CSDN博客

解unity bundle包

  1. 使用工具:AssetStudioGUI 或 UnityDataTools

  2. AssetStudioGUI:下载【https://github.com/Perfare/AssetStudio/releases】or【AssetStudioGUI官方下载_AssetStudioGUI最新版v0.16.21免费下载_3DM软件】,使用简单,把ab包拖进去就可以了,如果出现"数组纬度超越了支持的范围"的提示,可以先忽略,一般导出里面的图集是没问题的。想解决的参考下面的链接【https://www.zhihu.com/question/585225358】

  3. UnityDataTools:unity官方自己的工具,地址【https://github.com/Unity-Technologies/UnityDataTools】。我只用来分析里面资源都打包了啥。

    bash 复制代码
    set toolExe=【UnityDataTool.exe所在路径】
    set output=【导出路径】
    set input=【ab包所在路径】
    
    %toolExe% analyze %input% -o %output%\my_database.db -p *.ab

    生成的分析数据存放在my_database.db里,使用【SQLite Expert Professional】打开查看就行。

反编译代码

  1. 使用工具:.NET Reflector【】

  2. 没经过加密的代码,直接把dll拖进ReflectorInstaller就能看大部分c#代码了。

  3. 试用期重置

    bash 复制代码
    // 存放在文件Clear.reg,双击执行就可以
    Windows Registry Editor Version 5.00
    
    [-HKEY_CURRENT_USER\Software\Red Gate]
    [-HKEY_CURRENT_USER\Software\Red Gate Software Ltd.]
    [-HKEY_CURRENT_USER\Software\Thingummy Software]

参考:

  1. 【官方】https://github.com/Perfare/AssetStudio
  2. https://www.zhihu.com/question/585225358
  3. AssetStudioGUI获取Unity游戏资源-CSDN博客
  4. 【官方】https://github.com/Unity-Technologies/UnityDataTools
  5. https://en.wikipedia.org/wiki/.NET_Reflector
  6. .NET Decompiler: Decompile Any .NET Code | .NET Reflector
  7. 使用Reflector反编译并提取源代码 - 惊风雨 - 博客园
  8. 反编译工具Reflector下载(集成两个常用.net插件,FileGenerator和FileDisassembler) - Ethan Shan - 博客园
  9. Reflector反编译工具安装程序详解-CSDN博客
  10. Reflector 试用过期后重置试用 - 走看看
相关推荐
AI_Gump7 小时前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
寂寞的船12 小时前
【Unity知识速递】第13期 Unity 内存泄漏排查实战:从 Memory Profiler 到 Lua 引用泄漏的生产级全链路诊断
unity·junit·c#·游戏引擎·lua
疯华整猫12 小时前
否决 Flutter 提案那天,我发现自己也说不清 Framework 管什么
android
传奇开心果编程1 天前
【Flutter踩坑排雷】第25课:ScrollController 误用坑|跳转失效、监听泄漏与“控制器未附加”
android·flutter·ios·移动开发·跨平台·dart·声明式ui
慕容雪_1 天前
Capacitor8-Android打包完整手册
android·打包·capacitor
寂寞的船1 天前
【Unity Bug挑战】第12期 Awaitable 二次 await 死锁之谜 —— 为什么同一个异步操作等两次就卡死?
unity·c#·游戏引擎·bug
阿杰m1 天前
Android源码第十三章:Bluetooth——沿一次发现走到控制器
android
booboosui1 天前
派活给另一个 AI:前后两次文件夹快照,就是交付清单
android
普通人62 天前
MySQL_FIND_IN_SET函数详解
android·数据库·mysql
好的佩奇2 天前
Dart 之集合元素
android·flutter·dart