首页
社区
课程
招聘
[已解决] Unity+lua逆向求助 50.00雪花
2021-4-8 23:26 7370

[已解决] Unity+lua逆向求助 50.00雪花

2021-4-8 23:26
7370

最近在研究一款小游戏的逆向,情况大概如下:

 

游戏采用Unity3D引擎+lua脚本,未加壳未加密,游戏的核心逻辑代码在assets/lua文件夹下的unity.3d文件中,使用AssetBundleExtractor已经找到了编写lua脚本的txt文档并进行了替换,但是反编译打包安装到模拟器后,打开游戏强制热更新,进入游戏后发现修改的代码没有生效,怀疑可能是热更新过程中将修改的代码替换掉了。(即使是从模拟器导出游戏,重新安装回去,打开也需要热更新)

 

目前的想法是:
1.游戏完成热更新后,替换模拟器中的文件。
目前初步认为,游戏安装包和数据应该在模拟器文件夹下面名为sdcard.vmdk的文件中。但是不会打开文件(按照网上的教程安装了Vmware workstation,研究了半天也没能成功)。求大神告知此种方式是否可行,以及方法。

 

2.绕过热更新
看了下代码,热更新的部分在Assembly-Csharp.dll中,但是不太会修改。求大神指导。

 

3.通过frida hook进行修改
由于核心代码在lua中,不知道是要hook Assembly-csharp中的lual_loadbuffer方法还是Lua文件中的方法(目前还在学frida hook 和 IDA,估计还要学一阵子……)也请大神指教!

 

以上是自己的初步想法,希望大神能够给予指导。如果方法安全可行,悬赏金额可翻10倍到15倍。

 

链接:https://pan.baidu.com/s/1cgmDS9yNRa-TNNAzh2E8fw
提取码:zomb


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2021-4-8 23:56 被chrishany编辑 ,原因: 链接修改为最新版apk
收藏
点赞1
打赏
分享
最新回复 (16)
雪    币: 2598
活跃值: (1054)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
挥一挥衣袖 2021-4-9 10:00
2
0
lua代码的确是被热更新替换了,你可以这么做:
1. 安装游戏,打开并更新
2. adb shell到他的代码热更新目录/mnt/shell/emulated/0/Android/data/com.k9.game1060/files/zworld/lua
3. 替换你修改后的unity3d文件
这样就可以生效了
雪    币: 6511
活跃值: (3739)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
juice4fun 1 2021-4-9 10:51
3
0
清除游戏数据,打开charles抓包把http://cdn.appzcn.xnwan.com/assets/ReleaseLd/StreamingAssets/lua/game_lua.unity3d?v=764ca330bf16e5e586cb7679d7679747这条文件本地映射成你修改后的文件就行了,都不用写代码,算是比较通用的方法了
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
chrishany 2021-4-9 21:48
4
0
挥一挥衣袖 lua代码的确是被热更新替换了,你可以这么做: 1. 安装游戏,打开并更新 2. adb shell到他的代码热更新目录/mnt/shell/emulated/0/Android/data/com ...
打开游戏在等待进入界面,然后打开cmd,给模拟器最高权限之后,使用命令 cd /mnt/shell/emulated/0/Android/data/com.k9.game1060/files/zworld/lua
cmd提示No such file or directory  
是不是我在哪里操作的不对……
雪    币: 2598
活跃值: (1054)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
挥一挥衣袖 2021-4-11 10:40
5
0
1. 你需要先找到adb工具的目录:
如果是Mumu模拟器:C:\Program Files\HBuilderX\plugins\launcher\tools\adbs\adb.exe
如果是夜神模拟器:C:\Program Files (x86)\Nox\bin\nox_adb.exe  (复制nox_adb.exe重命名成adb.exe)
其他模拟器下面也可以找到adb工具
2. 在adb.exe的目录下打开控制台
3. 执行./adb.exe shell,成功以后,控制台会出现这样:root@shamu:/ #
4. cd /mnt/shell/emulated/0/Android/data/com.k9.game1060/files/zworld/lua
5. 替换你修改后的.unity3d文件
6. 重进游戏,如果修改没问题,一切正常,否则游戏可能卡住或出现其他问题
雪    币: 2598
活跃值: (1054)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
挥一挥衣袖 2021-4-11 10:41
6
0
如果是mumu模拟器,执行adb shell之前先执行:adb connect 127.0.0.1:7555
雪    币: 2174
活跃值: (5702)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
微启宇 2021-4-11 20:53
7
0
从上面的兄弟的分析来看, 数据不是存放在sdcard里没有root权限的话那想改数据达到效果只能是用#2 楼的方法劫持网络或写hook去替换数据。或者直接自己写个私服。
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
chrishany 2021-4-11 23:12
8
0
挥一挥衣袖 1. 你需要先找到adb工具的目录: 如果是Mumu模拟器:C:\Program Files\HBuilderX\plugins\launcher\tools\adbs\adb.exe 如果是夜神 ...
大佬,我试了下还是失败了…我的步骤是:
1、在夜神模拟器的目录下找到nox_adb.exe,复制之后粘贴在目录下改成adb.exe(目录下本来有一个adb.exe,我给删掉了)
2、然后启动模拟器,打开游戏
3、进入cmd,cd 到Nox\bin文件夹
4、运行adb shell命令
5、cd /mnt/shell/emulated/0/Android/data/com.k9.game1060/files/zworld/lua 但是结果还是No such file or directory
如果可以的话,大神可以给录个屏吗,感谢感谢!!!
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
chrishany 2021-4-11 23:14
9
0
清除游戏数据,打开charles抓包把http://cdn.appzcn.xnwan.com/assets/ReleaseLd/StreamingAssets/lua/game_lua.unity3d ...
感谢大神,我的查尔斯在安装远程证书的时候,打开网页没有自动下载证书,请问这个要怎么办啊?
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
chrishany 2021-4-11 23:17
10
0
请教下大神,网络劫持是通过hook的手段吗?
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
chrishany 2021-4-11 23:17
11
0
挥一挥衣袖 如果是mumu模拟器,执行adb shell之前先执行:adb connect 127.0.0.1:7555
请教下大神,网络劫持是通过hook的手段吗?
雪    币: 6511
活跃值: (3739)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
juice4fun 1 2021-4-12 20:19
12
0
chrishany 感谢大神,我的查尔斯在安装远程证书的时候,打开网页没有自动下载证书,请问这个要怎么办啊?
查尔斯这个问题我还是建议你百度,搞这个之前起码要把工具用会吧,提醒一下楼上那个路径不是一模一样的,不用adb那么麻烦,随便一个文件管理器打开android/data/包名,顺着就能找到了。条条大路通罗马
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
chrishany 2021-4-22 16:10
13
0
查尔斯这个问题我还是建议你百度,搞这个之前起码要把工具用会吧,提醒一下楼上那个路径不是一模一样的,不用adb那么麻烦,随便一个文件管理器打开android/data/包名,顺着就能找到了。条条大路通罗 ...
虽然没有成功,还是谢谢了。
文件夹下替换文件已经确定不成功了,应该游戏加载过程中就把文件加载到了内存,之后替换没有任何作用
雪    币: 6511
活跃值: (3739)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
juice4fun 1 2021-4-22 19:04
14
0
chrishany 虽然没有成功,还是谢谢了。 文件夹下替换文件已经确定不成功了,应该游戏加载过程中就把文件加载到了内存,之后替换没有任何作用
所以我才叫你抓包,抓包有用,直接替换文件肯定不行啊,人家比对一下md5值又给你重新下回来了
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
chrishany 2021-4-28 08:48
15
0
所以我才叫你抓包,抓包有用,直接替换文件肯定不行啊,人家比对一下md5值又给你重新下回来了
再请教下大神,现在游戏抓包,篡改数据还是只能用wpe吗?wpe团队好像很久以前就宣布不再更新了,网上也没有比较新的wpe教程了
雪    币: 6511
活跃值: (3739)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
juice4fun 1 2021-4-28 16:26
16
0
chrishany 再请教下大神,现在游戏抓包,篡改数据还是只能用wpe吗?wpe团队好像很久以前就宣布不再更新了,网上也没有比较新的wpe教程了
大多数都走的http,无论是fiddler,charles都好用。
雪    币: 27
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
heiyu04 2021-5-16 20:07
17
0
还没搞定吗 要提供思路 还是做好发你
游客
登录 | 注册 方可回帖
返回