吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3706|回复: 8
收起左侧

[Android 原创] 【Dump那点事】内存一键定位coderegistration和metadataregistration的方法

  [复制链接]
ryanhn717 发表于 2024-3-14 13:17
本帖最后由 ryanhn717 于 2024-3-14 13:34 编辑

说明


经常Dump的同学可能会碰到以下情况,本文提供一种简便的内存获取此值的方法。  

BF0CA9BFC020BD0800EF2E93D08CE592.jpg

前言


网上已有很多关于使用IDA来查找coderegistration和metadataregistration的文章,略作总结如下(此文不做额外延申):
1、通过字符串交叉引用最终定位il2cpp::vm::Runtime::Init,找到 s_Il2CppCodeGenRegistration中包含的coderegistration和metadataregistration。

企业微信截图_20240314123015.png

【搜字符串如“global-metadata.dat”,“mscorlib.dll”等),交叉引用路径如下il2cpp::vm::GlobalMetadata::Initialize    →  il2cpp::vm::MetadataCache::Initialize →  il2cpp::vm::Runtime::Init →  s_Il2CppCodeGenRegistration

2、通过 il2cpp_init 定位找到 il2cpp::vm::Runtime::Init


由于很多游戏对于常用字符串或结构等进行了加密处理,操作者在使用IDA进行定位时需要对源码以及工具有一定程度了解。比如以下情况(游戏案例: XX方舟)

①字符串global-metadata.dat无交叉引用

global72DE3178B9052065678049C64E.jpg

无D84333AE67B82737DCC15D529.jpg

②字符串mscorlib.dll交叉引用结构混乱(对照源码)

结构混乱.jpg

针对不熟悉IDA工具以及il2cpp源码的同学,我们可以从内存结构中直接获取coderegistration和metadataregistration。

正文


工具:GG修改器
案例游戏:XX方舟 (截止发帖3.14最新版 64bit)

一、打开游戏,打开GG修改器,选择好游戏进程。内存范围选择 Ca/A/O
二、字符串搜索 get_fieldOfView 定位内存解密后的 global-metadata.dat 模块 ,随之获取该模块头地址,即metadata文件魔术字头地址(此案例已抹掉了魔术字头,可直接内存修改”AF1BB1FAr “进行还原)

FB427EB0BE22788FF79A7FE7871D2A5E.jpg

三、更改内存范围为 Cb/A。对metadata魔术字头地址进行指针搜索,得到偏移量为" 8 "的两个指针。

6424984C15803B7E14A68E5C56B932D6.jpg

四、分别对得到的两个指针做偏移" -18 "(十六进制),即可得到coderegistration 和 metadataregistration的指针,所得指针中包含的十六进制地址值即为所需数值, 此例为:
coderegistration : 6F9FFB6DB8  
metadataregistration: 6F9FFB6E28

F47A6E872626A7817429C00D7B91EB1F.jpg

注意


由于内存指针地址变动,所获数值需要对应当次内存dump出的global-metadata.dat和libil2cpp.so使用。
内存结构对应源码数据,如按本文方法无法获取所需数值,则需要进一步查看对应的内存结构,本文不在延申。


免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
芽衣 + 1 + 1 用心讨论,共获提升!
seamusyang + 1 + 1 想法很好,学习下

查看全部评分

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

xixicoco 发表于 2024-3-15 01:42
有意思,在游戏领域很好的教程
uliaxs0n 发表于 2024-3-15 10:54
hellostarrysky 发表于 2024-3-15 20:01
lyn520 发表于 2024-3-16 06:43
写的很棒,刚好在学过游戏检测
jsncy 发表于 2024-3-30 15:31
谢谢分享。
oath1 发表于 2024-3-30 18:14
学的很棒,学习了
Miyazaki002 发表于 2024-9-14 21:48
大佬请问指针搜索出来的数据类型不是Ca而是A的话要怎么处理呢
yunteng9527 发表于 2024-9-15 14:32
学习了.,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-14 02:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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