首页
社区
课程
招聘
[原创]安卓U3D逆向从Assembly-CSharp到il2cpp
发表于: 2017-12-21 18:12 41470

[原创]安卓U3D逆向从Assembly-CSharp到il2cpp

2017-12-21 18:12
41470


随着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的值都翻倍。

代码如下:

代码和界面完成后,我们设置包名(com.test.test)进行打包,分别输出mono后台和il2cpp后台的apk。


点击Player Setting进行后台设置,可点击Scripting Backend选择mono或者il2cpp。


得到的apk我们分别命名为Sample-mono.apk和Sample-il2cpp.apk。

安装测试正常,界面如下:

初始界面


点击HP和ATK后界面


点击LevelUp后界面


至此,我们完成了两种后台的apk的创建,接下来先对mono后台的apk进行逆向分析。


0x2.mono后台apk的逆向分析

工具:Android Killer,DnSpy

思路:将Sample-il2cpp.apk拖拽进Android Killer进行反编译,获取到脚本文件/Assets/bin/Data/Managed/Assembly-CSharp.dll,dll拖进DnSpy进行反编译分析,修改关键method后,保存并重新打包运行。

Android Killer部分不再上图,Assembly-CSharp.dll拖拽进DnSpy,我们可以很轻易的找到我们需要的关键函数,如图:


根据代码信息,我们可以确定,num为初始HP,num2为初始ATK,我们在此通过编辑IL指令将他们的值分别改为1000和500,如图:


确认后C#编码变更如下:


保存后,重新打包apk安装测试结果如下:



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (35)
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
赞,学习一下
2017-12-21 18:27
0
雪    币: 4515
活跃值: (2136)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
学习了支持一下
2017-12-22 10:47
0
雪    币: 1
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
il2cppdumper有链接吗
2017-12-22 16:07
0
雪    币: 1694
活跃值: (253)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
debugpro il2cppdumper有链接吗
已上传到附件
2017-12-22 17:51
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不错!
2017-12-22 22:03
0
雪    币: 1348
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习了
2017-12-23 09:08
0
雪    币: 2
活跃值: (430)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
请问在il2cpp哪里两个值为什么是9ca1e0
9ca218
2018-1-5 19:10
0
雪    币: 1250
活跃值: (2158)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
9
市面上的dll都会加密存放的,可以看看libmono.so中加载函数,在那下断点或hook才能拿到原始dll
2018-1-17 19:00
1
雪    币: 1694
活跃值: (253)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
茅山小僧 市面上的dll都会加密存放的,可以看看libmono.so中加载函数,在那下断点或hook才能拿到原始dll
内存dump,so文件过反调试后下断或hook  dump,内存分段dump,调用so中解密函数直接运行解密,等等各种方式都可以
2018-1-18 15:45
1
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark  一记。
2018-2-6 16:11
0
雪    币: 1
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
12
大佬,  若果要在il2cpp上加建一个mod  menu,该用何起手?
(.dll)  的早已学会创建mod  menu  (最近某论坛也放出源码了),  但il2cpp的一点思路也没有,  网上0  教学,  只有少量提示要用到(Java,  C++,  IDA  and  HxD),求大佬指教一下
2018-3-4 00:05
0
雪    币: 1694
活跃值: (253)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
13
一三二一 大佬, 若果要在il2cpp上加建一个mod menu,该用何起手? (.dll) 的早已学会创建mod menu (最近某论坛也放出源码了), 但il2cpp的一点思路也没有, 网上0 教学, 只 ...
单纯在il2cpp.so中添加menu几乎木有可能,我觉得需要从别的思路入手,比如il2cpp尽量小的变动,调用自制的so文件中的函数实现,不过没具体试过,可操作性比较低。
2018-3-4 11:23
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
请问一下,最高玩家等级怎么修改
2018-4-11 20:01
0
雪    币: 1694
活跃值: (253)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
15
Diyunqing 请问一下,最高玩家等级怎么修改
这种还是自己分析解决吧
2018-4-12 21:21
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
好吧(无奈)
2018-4-13 15:05
0
雪    币: 6078
活跃值: (5485)
能力值: ( LV5,RANK:65 )
在线值:
发帖
回帖
粉丝
17
很好的教程,感谢分享,学习!
2018-10-30 23:45
0
雪    币: 202
活跃值: (292)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
恭喜楼主分享
2018-11-2 10:10
0
雪    币: 223
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
感谢分享,学习一下
2018-11-2 10:15
0
雪    币: 239
活跃值: (329)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
额,我讨厌你
2018-11-3 12:10
0
雪    币: 228
活跃值: (161)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
il2cpp可以hook么?厚着脸皮求点资料
2018-11-7 23:17
0
雪    币: 228
活跃值: (161)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
22
看到自己之前的留言回复一下,现已解决。
2019-3-11 10:48
0
雪    币: 1197
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
感谢分享 不过我好像很少见il2cpp的
2019-3-15 12:28
0
雪    币: 1752
活跃值: (562)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
24
非常有帮助 感谢分享!
2019-7-12 18:48
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
不错,有u3d程序的吗?
2019-10-28 12:20
0
游客
登录 | 注册 方可回帖
返回
//