【初夏教程】初识dat-so修改及相关工具简单介绍

[复制链接]
查看1557 | 回复0 | 2020-9-3 23:04:21 | 显示全部楼层 |阅读模式

本节课我们主要就是认知IL2cpp打包机制的unity 3D游戏逆向,并对逆向过程中相关工具进行下简单讲解。内容并不算多,但基本都是有用的和基础的,对新人或许有一定的帮助,所以还是大家还是可以认真看一下。
#【邀请函】我开始控制自己的情绪 控制自己的表情 知道…#
PS:欢迎加入原创团队(推荐初拓联邦组)交流学习,成为团队的一份力量[玫瑰][玫瑰]。
#【开拓者团队】求贤若渴 特招人才!你在何处?期待你的加入!#
#【初夏团队】初夏团队邀请函#

【声明】
许多没有接触过so修改的小伙伴总以为比较难搞,从而就此放弃了对一些游戏的逆向。其实这个修改并不难,入门的话开始不太习惯,在自己独立修改了几个游戏后,你会发现so修改也是具有规律的:dump出游戏逻辑?通过关键词寻址?ida定位分析?十六进制修改?打包测试,所以建议大家还是敢于尝试,并具有耐心[滑稽][OK]。

当然,前人们对于dat-so修改的教程也有很多,北笙ぐ也是正在学习逆向的路上,有什么的错误的内容或者有更好的、易理解的方式,欢迎交流学习,免得出现"北门弄so"等不妙的情况发生。

【前言】
关于Unity 3D引擎的几种打包方式这里就不再介绍,相信大家现在在逆向Unity 3D游戏时遇到的大多就是IL2cpp机制打包的,不得不说,随着手游技术的不断发展,IL2cpp打包机制已经成为了U3D手游引擎的主流。

IL2cpp,即把IL中间语言转换成CPP文件。在mono打包机制中游戏逻辑放在dll文件中,我们通过修改assets/bin/Data/Managed文件夹下的Assembly-Csharp.dll文件及相关dll文件来实现相关功能。那么在IL2cpp打包的机制中游戏的逻辑放在so文件内,所以我们修改的对象也就放在了lib目录下的libil2cpp.so文件。

当然,so文件里面的游戏逻辑也不是直接就能看到的,需要我们借助一些工具来分析。接下来我会结合案例来进行讲解和工具的使用。

【工具准备】
IL2cpp游戏修改我主要用到的工具如下:
1.IDA pro7.0(所有游戏逆向者的女盆友,神器,教程中用于载入分析so文件)

2.Il2CppDumper-6.2.1(反编译获取游戏函数地址)

3.C32Asm(十六进制文件编辑器,用于修改so文件,当然其他具有十六进制修改功能的工具也可以)

4.dnspy(分析dump出相关函数的dll文件,因为该工具逻辑比较清晰,所以个人习惯使用,当然你用其他工具分析dump.cs文件也是可以的)

5.MT管理器(主要用于对修改后的apk签名等后续修改)

【教材分析】
废话不多扯,直接上教材:Climby Hammer(某分网下载)
在安装包内\lib\armeabi-v7a目录下发现了libil2cpp.so文件,以及在\assets\bin\Data\Managed\Metadata发现了global-metadata.dat文件,所以判定为IL2cpp机制打包的游戏。
进游戏看下可以修改的地方(游戏只有钻石这一种货币):修改货币;免广告获取奖励;直接解锁所有皮肤。出于简单基础考虑,我们讲修改货币这种思路。

以下楼层开始更新[玫瑰][玫瑰][玫瑰]

对于修改后为什么要删除v8a目录可以参考#Android中的armeabi,armeabi-v7a和X86#
aaaa
村长黑科技是专业提供项目资源的服务的村长黑科技平台,如合购网赚项目、引流推广软件、软件程序开发等项目就选村长黑科技平台,参与或发布项目定制各种软件就来村长黑科技平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则