Skip to content

genericMethodPointersCount过大导致il2cpp版本识别错误 #885

@phpnumber1

Description

@phpnumber1

请注意:如果你没有提供以下所有信息我将会直接无视并关闭这个issue

  • Il2CppDumper版本:6.7.46

  • 目标Unity版本:2021.3.37f1 Il2Cpp version 29

  • 问题描述:我玩的游戏从几个月前某个版本开始无法用Il2CppDumper进行Dump。一开始我以为是加密了就没在意,后来仔细研究的时候发现dump的时候怎么突然把il2cpp版本切成了29.1。于是我拿手中的旧版本能dump的包用ida对比了一下codeRegistration和metadataRegistration,发现没什么显著区别,我感觉不是加密的问题。然后我看了下自动分析的codeRegistration的地址,发现与实际位置差了0x10。于是定位到Il2Cpp\Il2Cpp.cs的AutoPlusInit函数,发现设置了一个limit,genericMethodPointersCount超过这个limit会切换版本。但是这个游戏的genericMethodPointersCount值是0x6C391,导致了意外的版本切换。我把limit改大之后成功dump

  • 上传可执行文件和global-metadata.dat(一直failed to upload,上传不了)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions