吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 28687|回复: 78
收起左侧

[Android 原创] 记一次Unity3D dat修改过程

  [复制链接]
痞孑 发表于 2018-6-5 10:08
本帖最后由 痞孑 于 2018-6-6 20:45 编辑





关于dat打包的游戏想必也大家修改游戏的时候也遇过
在2014年年中的时候,Unity3D官方博客上却发了一篇“The future of scripting in unity”的文章,引出了IL2CPP的概念
从名字可以看出 IL2CPP。大家很容易就理解其意义了(把IL中间语言转换成CPP文件)

讲的明白一点 就是咱们平时修改dll
ldc.i4 9999999
ret
这种就是IL语言。IL2CPP就是将这种东西转换成cpp。也就是C++

今天我就拿“致命杀手”这个游戏来说
其目的就是要修改游戏里边的金币、钞票

准备工具如下
1. dat的Unity3D游戏
2. Il2CppDumper工具

ok,那我们直接进入正题
打开安装包提取lib/armeabi-v7a/libil2cpp.so
1.png

然后提取assets\bin\Data\Managed\Metadata\global-metadata.dat
1.png

把以上提取的两个文件放到dump工具目录下
运行dump工具
1.png
2.png
3.png
4.png

分析之后得出的一个dump.cs文件,可以用Notepad++打开
上面说了目的是要修改“金币”“钞票
那我们在cs文件里边搜索一些常见的货币  
例如搜索 “Gold”“Money” (大小写无所谓)
1.png

找到了不少,但是这个是正确的 “//”后面的地址是这个方法名所在so的偏移之后会用到记下来
得到偏移之后我们把libil2cpp.so扔进IDA分析
分析完之后再页面按“G”输入“Gold”的偏移
也就是图上看到的876750
1.png

然后按回车键会跳到这里,也就是Gold的地方了
这种改过dll的都知道,重新给个返回值就好了
1.png

那么我们找到关键点了,点击此处,然后切换到Hex-view-1查看它的16进制码
复制它的地址及对应的16进制码,先放到txt文件中,然后关闭这个文件
1.png

然后关闭ida之后,然后我们再使用010Editor打开刚才的那个so文件,可直接把so文件拖入010Editor,
因为我们刚才已经知道那个最后获取金币的地址了,所以这里直接Ctrl+G跳转到那个地址
1.png

修改完之后,保存,然后把修改过的so文件替换到原目录里边
重新再次编译生成apk,运行游戏之后,
效果如下图
1.png


上亿的金币钞票还怕玩不下去? BS1}]0I[{9MJYNO(R9YTYZA.jpg


工具下载



免费评分

参与人数 19威望 +1 吾爱币 +25 热心值 +19 收起 理由
ssdbmm + 1 + 1 谢谢@Thanks!
tztt3033 + 1 + 1 用心讨论,共获提升!
15808244862 + 2 + 1 谢谢@Thanks!
小朋友呢 + 2 + 1 热心回复!
lanlana + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
kxcy + 1 + 1 谢谢@Thanks!
yu7084339 + 1 + 1 热心回复!
sensMe + 1 + 1 很详细。。学习了~~~
finalcrasher + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Probious + 1 谢谢@Thanks!
h080294 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xwzj20170829 + 1 + 1 谢谢@Thanks!
qtfreet00 + 1 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sqing + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
hellokett + 1 + 1 写的很详细,但是在16进制那个转换的时候,不知道怎么转到8位数字的??还.
qaz003 + 1 谢谢@Thanks!
灵影 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
笑话777 + 1 + 1 谢谢@Thanks!
ao610336999 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

CIBao 发表于 2018-6-10 02:16 来自手机
lanlana 发表于 2018-6-8 21:15
mov R0,#0xFFFFFF
是怎么转成0F 02 E0 E3的不懂   大神  可不可以讲讲
我百度不出来

百度 arm to hex
姐夫总 发表于 2019-7-10 16:00
楼主,dump.cs文件里偏移数字都是“RVA: 0x4863FD4 Offset: 0x4863FD4”,类似这样的:

        public int get_DiamondValue(); // RVA: 0x4863FD4 Offset: 0x4863FD4
        public void set_DiamondValue(int value); // RVA: 0x4863FE0 Offset: 0x4863FE0

不太理解。擎楼主指点指点!!
form 发表于 2018-6-5 10:16
Dicker 发表于 2018-6-5 10:17
哎呀 ,没评分了 。。。多谢 大佬的教程
笑话777 发表于 2018-6-5 10:30
谢谢分享
灵影 发表于 2018-6-5 10:55
技术 文章。Unity3D 现在安卓游戏都用这个引擎
yhzh 发表于 2018-6-5 11:14
感谢分享。。。。
xj1985 发表于 2018-6-5 11:40
新内容,,没看到过,感谢楼主分享
hellokett 发表于 2018-6-5 12:15
楼主,问个问题,进游戏的时候有文件检测怎么搞,改完以后进游戏error

点评

首先你要确定是本地验证还是服务器验证 如果是本地验证就去游戏的dex文件搜索字符串 后者如果是服务器验证 这个的话 没基础还是放弃吧  详情 回复 发表于 2018-6-5 13:17
菊的花 发表于 2018-6-5 12:19
好神奇,感谢分享
ywfengjie 发表于 2018-6-5 12:59
不错,学习了。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-13 10:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表