global-metadata.dat,libil2cpp.so解密修复

遇到一个游戏,使用Il2CppDumper

Dump失败,打开global-metadata.dat看看,

加密,使用GitHub - 350030173/global-metadata_dump脚本去dump

dump之后,再使用Il2CppDumper,还是不行,提示要手动输入

so可能还有问题,再去dump so试试,使用yang神的脚本

https://github.com/lasting-yang/frida_dump

卡着不动,但是发现so的大小有128MB,而原来的只有7十多

无法dump,那使用yang神旧版的脚本试试

https://github.com/lasting-yang/frida_dump/commit/567b8d38b086fc916d383113acf8985c34c7bd7f

Dump成功,提取出来,再使用F8LEFT大佬的修复so修复一下

https://github.com/F8LEFT/SoFixer/releases

还是报错,但是看到一个信息,“[VerifyElfHeader:145]"libil2cpp.so_0x70014ce000_0x80ef000.so" has bad ELF magic”

错误的魔数?,010打开看看

确实头部信息被抹掉了,

找个同位数的把头部字节填回去,再使用F8LEFT大佬的工具

好,修复成功

再使用Il2CppDumper试试,

还是报错,用ida打开看看,提示这个

难道没有被正确修复吗?

导出函数干干净净,肯定还是哪里没修复,再使用010打开解析一下elf文件,好像缺少了什么

正常这里都会有4个结构体

struct elf_header

Elf64_Half e_ehsize_ELF_HEADER_SIZE

Elf64_Half e_phentsize_PROGRAM_HEADER_ENTRY_SIZE_IN_FILE

Elf64_Half e_shentsize_SECTION_HEADER_ENTRY_SIZE

这3个大小信息都没了,通常这里也是固定的,找个正确的对比后改一下

正确解析elf结构体,再使用Il2CppDumper试试,还是不行

Ida再打开看看,

正常打开,导出函数也有

使用frida-il2cpp-bridge去获取dump.cs,

提示找不到导出函数,去ida中搜索看看,确实没有,这个也被抹除了,其他的貌似都有在,找个别的游戏,打开同位数的游戏的so,是能找到这个导出函数的,搜索一下这个函数,确实是有的

找找附近的特征,去搜索一下

有很多个,最后找到这个,在fix.so中跳转过去看下

好家伙原来导出函数变成这样

il2cpp_dk1::num_htpjhsSvk

把上面的函数填写到frida-il2cpp-bridge,再写脚本,最后终于获取到相关信息

总结:

1.global-metadata.dat加密:

使用:https://github.com/350030173/global-metadata_dump

2.so加密:

使用:https://github.com/lasting-yang/frida_dump

或:https://github.com/lasting-yang/frida_dump/commit/567b8d38b086fc916d383113acf8985c34c7bd7f

3.so修复:

使用:https://github.com/F8LEFT/SoFixer/releases

如果还不行,手动修复

4.根据特征找到原函数地址

5.建了一个QQ群:542863693,欢迎加入(备注看的什么文章)

微信公众号:MoneyHoneyCome

  • 16
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值