【1】UABE修改之一:对DUMP文本进行修改
注意,UABE也是需要DLL才能正确得到DUMP文本的,所以如果是il2cpp脚本后端,也需要上一步中导出的DLL。
1、 用UABE打开上一步中确定的level0文件,找到刚才的MonoBehaviour
image
2、 点击右侧Export Dump,会弹窗提示,这时候点击“是”,然后给他选择所需要的DLL就可以了,然后就提示保存的位置了,保存好Dump的文本。
注意,不一定能找到所有的DLL的,事实上有很有预设资源也是MonoBehavior类型,他们指向的类可能没有被编译进来(因为不需要),只需要保证要改的MonoBehavior指向的类所在的DLL有就可以了。UABE会自动先在Data\Manager文件夹下找,找不到的才会弹窗要。还有选完DLL会有个小黑窗出来一会会儿。
3、用Notepad++打开DUMP文本,也可以用其他的编辑器,但是一定要可以用UTF-8编码,修改完保存。
4、回到UABE,右侧Import Dump,选择编辑过的文本,点击ok保存
注意,UABE只能另存为,也就是说你不能直接保存回源文件,而是要保存到另一个地方,然后在复制粘贴覆盖回去
5、压回源文件,进行重新签名或者做针对其他安全机制的操作,我的示例APP直接用Unity导的APK,根本不需要任何针对安全机制的操作,改完直接就能安装(:з」∠)
操作正确的话结果如下
image【2】UABE修改之一:对RAW进行修改
所谓RAW就是直接DUMP出编译后的内容,然后直接对二进制文件进行修改,这种不需要DLL,要通用的多,我在实际应用中遇到过UABE不吃il2cppdumper得到的DLL的情况。
1、 还是用AssetsStudioGUI打开第一步得到的level1,找到Dropdown
image.png2、 用UABE打开level1,在右侧Export RAW,这次就不需要DLL了,然后用可以编辑十六进制的工具打开得到的dat文件,我用的是010 Editor,找到要修改的字符串,字符串前的4个byte 是字符串的长度0x06
image.png3、 修改字符串
字符串写入的规则是,
(1) 用UTF-8编码成byte
(2) 写入byte数目,32位整数,小端模式
(3) 按顺序放入byte
(4) 补零,使得当前位置向4byte对齐,也就是当前位置对4byte取余为0
按照这个规则修改上面的字符串,如下
image.png修改之后的对比
image.png
4、 回到UABE,右侧Import RAW
5、另存为,然后覆盖
预览最终效果如下:
image.png
网友评论