Perfare / Il2CppDumper

Unity il2cpp reverse engineer
MIT License
6.9k stars 1.35k forks source link

【xx.1分支判断(limit数值)错误】《world dai star》1.30.0解析时出现异常Count数,导致分析失败 #805

Open esterTion opened 1 month ago

esterTion commented 1 month ago

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

6.7.46

2021.3.37f1

《world dai star》(ios android)1.30.0的ios版本在解析时出现问题,疑似codeRegistration查找错误,genericMethodPointersCount93invokerPointersCount168309160
在以前的版本中没有出现这个问题。
测试android侧也是同样的问题。

暂时通过在ReadClassArray中try catch提前返回,且跳过Init结尾的超范围查表后,可以勉强生成一个可用于提取类型的dump.cs

https://estertion.win/media/wds-1.30.0-UnityFramework.7z https://estertion.win/media/wds-1.30.0-global-metadata.7z

esterTion commented 1 month ago

后续跟进: 经过调试发现,Il2CppDumper/Il2Cpp/Il2Cpp.cs#L55limit有误,在1.29.0时genericMethodPointersCount0x4ffeb,已经在边界了,1.30.0时达到了0x510c4,触发了29.1并使codeReg前移了0x10 暂时针对这一个游戏将0x50000改为0x60000可以用,具体limit的得出不确定是不是应该查一下il2cpp源码