随着unity技术的发展及厂商对于脚本源码的保护,很大一部分U3D应用的scripting backend已经由mono转为了il2cpp,本文从unity简单应用的制作讲起,介绍U3D应用脚本的Assembly-CSharp.dll的逆向及il2cpp.so的逆向分析。
目录如下:
0x1.U3D应用制作 → 输出两个apk,分别为mono和il2cpp
0x2.mono后台apk的逆向分析 → Assembly-CSharp.dll 逆向修改
0x3.il2cpp后台apk的逆向分析 → il2cpp.so逆向修改
正文内容:
0x1.U3D应用制作
工具:Unity最新版本 2017.2.1f1
1.1 创建Project
新建一个Unity3D Project,Project name为UnityTest,如下图
1.2 创建script定义界面元素
创建GameObject和C# Script,均命名为Sample, 同时创建两个UI Text,分别命名为HP和Attack。打开C# Script,进行界面元素的义,创建三个矩形按钮分别为HP,ATK和LevelUP,设置点击HP显示100,点击ATK显示50,点击LevelUP后HP和ATK的值都翻倍。
代码如下:
using UnityEngine;
using UnityEngine.UI;
public class Sample : MonoBehaviour
{
public Text _hp;
public Text _attack;
private Rect _healRect = new Rect(10f, 20f