先了解一下普通apk包的逆向方法(无加密或加壳)
开发环境:
-
操作系统:windows
解apk包
-
下载工具:apktool【Install Guide | Apktool】
-
按照文档说的操作就行,先安装java运行时环境【我安装的是jre-8u441-windows-x64】,在系统环境变量里添加【JAVA_HOME】
-
下载批处理【https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat】
-
在批处理所在路径下,打开Windows命令行(或打开命令行,cd到路径下)执行代码
bashapktool d xxx.apk
-
导出的路径就在执行命令的路径下,里面的AndroidManifest.xml可以打开直接查看了,没有经过解析的是二进制形式,无法直接查看。
解unity bundle包
-
使用工具:AssetStudioGUI 或 UnityDataTools
-
AssetStudioGUI:下载【https://github.com/Perfare/AssetStudio/releases】or【AssetStudioGUI官方下载_AssetStudioGUI最新版v0.16.21免费下载_3DM软件】,使用简单,把ab包拖进去就可以了,如果出现"数组纬度超越了支持的范围"的提示,可以先忽略,一般导出里面的图集是没问题的。想解决的参考下面的链接【https://www.zhihu.com/question/585225358】
-
UnityDataTools:unity官方自己的工具,地址【https://github.com/Unity-Technologies/UnityDataTools】。我只用来分析里面资源都打包了啥。
bashset toolExe=【UnityDataTool.exe所在路径】 set output=【导出路径】 set input=【ab包所在路径】 %toolExe% analyze %input% -o %output%\my_database.db -p *.ab
生成的分析数据存放在my_database.db里,使用【SQLite Expert Professional】打开查看就行。
反编译代码
-
使用工具:.NET Reflector【】
-
没经过加密的代码,直接把dll拖进ReflectorInstaller就能看大部分c#代码了。
-
试用期重置
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]
参考:
- 【官方】https://github.com/Perfare/AssetStudio
- https://www.zhihu.com/question/585225358
- AssetStudioGUI获取Unity游戏资源-CSDN博客
- 【官方】https://github.com/Unity-Technologies/UnityDataTools
- https://en.wikipedia.org/wiki/.NET_Reflector
- .NET Decompiler: Decompile Any .NET Code | .NET Reflector
- 使用Reflector反编译并提取源代码 - 惊风雨 - 博客园
- 反编译工具Reflector下载(集成两个常用.net插件,FileGenerator和FileDisassembler) - Ethan Shan - 博客园
- Reflector反编译工具安装程序详解-CSDN博客
- Reflector 试用过期后重置试用 - 走看看