本文就是记录自己的一次瞎胡闹!!
随便在网上找了一款使用Unity3D 开发的Android 手游,其运行效果是这样的
Unity3D逆向工具
使用ApkDb 反编译apk 文件(在apk 上右键–>使用APKDB编译),得到以下文件夹
使用Unity3D 开发的Android 游戏的资源、C# 代码都在assets 文件夹中!Unity3D 所有资源、代码都在/assets/bin/data 里面
settings.xml: Unity3D的配置文件
splash.png: apk默认启动图
sharedassets0.assets: Unity3D资源文件打包文件
sharedassets0.assets.split: Unity3D资源文件打包文件
Managed文件夹: Unity3D游戏源代码,是一些DLL文件
unity default resources: Unity3D语言包
使用.Net Reflector(需要安装Reflexil 插件)打开Assembly-CSharp.dll(大多数Unity3D 游戏的代码逻辑都在这里,也有很多游戏会有很多其他的DLL,具体情况具体分析)
.Net Reflector 会把DLL 中的代码以C# 语言的方式反编译出来,对着代码进行逆向分析相对来说就方便很多了
可以直接在.Net Reflector 中按照类名、方法名、字符串等进行搜索(如果程序加密了就不好办了),.Net Reflector 上的各个菜单项、工具栏多点点,了解它们的功能!
Tools–>Reflexil 打开Reflexil 插件,这个插件用来修改程序集的IL 并保存到磁盘文件!
Android Killer
上面是使用ApkDb 对apk 文件进行反编译,其实我们还可以选择功能更强大的Android Killer,使用Android Killer 打开apk 文件进行反汇编和分析
另外如果在电脑上安装像海马玩模拟器等,可以直接在Android Killer 上连接到该设备,很方便的进行安装apk、运行程序进行测试
不过不知道为什么我这里找不到对应的模拟器,而且使用海马玩模拟器安装上面那个游戏竟然运行不起来,算了,还是使用夜神模拟器吧
这种情况经常会遇到,如果暂时没有空去查清楚原因,那么试着换个工具临时解决一下
另外在Android Killer 的工程管理器可以看到apk 文件反编译后的目录结构,其实和ApkDb 一样,Android Killer 将其反编译后也是将这些文件放在某个本地目录下的,不过ApkDb 是直接放在apk 文件的相同路径下,对于An