纯记录贴,怕下次自己忘了。
目标:steam锁国区某日游,因无中文语言,所以想做一下汉化。
使用工具:CPP2IL  https://github.com/SamboyCoding/Cpp2IL
Il2CppInspector
AssetStudioGUI
dnspy  ida   x64dbg  用到的工具比较多

一、先找语言文件
先打开AssetStudioGUI
记录一次U3D il2cpp游戏逆向解包
直接加载游戏文件目录,等他跑一小会,随便搜搜关键字筛选一下看看
记录一次U3D il2cpp游戏逆向解包记录一次U3D il2cpp游戏逆向解包
能看到多语言文件都是加密过的,先右键导出个英文的文件准备开干。
二、解包GameAssembly.dll
下载好Cpp2il,填上bat命令行,一键导出,或者使用Il2CppInspector。
命令行:Cpp2IL.exe  --game-path="D:\Program Files (x86)\Steam\steamapps\common\Yu-Gi-Oh!  Master Duel" --exe-name="masterduel"
经过漫长无比的等待后
cpp2il文件目录下会输出若干文件
记录一次U3D il2cpp游戏逆向解包
三、分析Assembly-CSharp.dll
拖进dnspy可以看到类似这样,看不到函数内部,只能看到函数名,够用了,开始找解密函数
记录一次U3D il2cpp游戏逆向解包
搜索Decrypt方法,只有一个符合,我这里已经知道这个函数就是解密函数了,所以直接拿他开整。
记录一次U3D il2cpp游戏逆向解包
记录下地址:[Address(RVA = "0x7BD270", Offset = "0x7BC470", VA = "0x1807BD270",dnspy先别关一会还有用
四、分析GetBytesDecryptionData解密函数
掏出IDA拖入GameAssembly.dll,抽根烟开始漫长的等待。跑完之后直接去00000001807BD270处F5看一下伪代码
记录一次U3D il2cpp游戏逆向解包
很简单的逻辑,在去dbg里跑一下看一眼变量。
记录一次U3D il2cpp游戏逆向解包
这里rbx+78对应的a1 + 120,拿到v5的数值,接下来写个算法就好了,其实就两行。
记录一次U3D il2cpp游戏逆向解包
记录一次U3D il2cpp游戏逆向解包
简单的运算,没啥好讲的,解密之后发现还是加密的状态,后来我仔细找了找,返回值还有一个call双击进去,复制1806ED310,dnspy搜一下字符串
记录一次U3D il2cpp游戏逆向解包
对应的应该是zlib算法里的解压函数,下载一个zlib类库看下源码
记录一次U3D il2cpp游戏逆向解包
OK,引用到项目,测试一下完活
记录一次U3D il2cpp游戏逆向解包
记录一次U3D il2cpp游戏逆向解包
标签:
记录一次U3D il2cpp游戏逆向解包

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“记录一次U3D il2cpp游戏逆向解包”
暂无“记录一次U3D il2cpp游戏逆向解包”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?