Il2CppDumper v6.1.0

2020-03-06 26,169 ℃

距离上次在博客发布都要快一年了,这次因为又添加了一个新功能,所以在博客介绍一下。

ida脚本现在分为“ida.py”和“ida_with_struct.py”两个,使用“ida_with_struct.py”会载入“il2cpp.h”并在ida应用结构信息,包括变量,函数,虚函数表等等。

测试代码

public class Class1
{
    private int b;

    public Class1()
    {
        b = 1;
    }

    public virtual int Add(int a)
    {
        return b + a;
    }

    public virtual int Sub(int a)
    {
        return b - a;
    }
}

public class Class2 : Class1
{
    private int c;

    public Class2()
    {
        c = 2;
    }

    public override int Add(int a)
    {
        return c + a;
    }

    public override int Sub(int a)
    {
        return c - a;
    }
}

public class Class3
{
    public Dictionary<Class2, int> a = new Dictionary<Class2, int>();
    public static int b = 5;

    public int test(Class2 d)
    {
        var c = new Class2[255];
        c[50] = d;
        var e = d.Sub(b);
        a.Add(d, e);
        return e;
    }
}

使用脚本后ida F5 Class3.test函数,我已经添加了注释

int32_t __cdecl Class3__test(Class3_o *this, Class2_o *d)
{
  Class2_array *v2; // eax
  Class3_o *v3; // ecx
  Class2_array *v4; // edi
  Class3_c *v5; // eax
  int v6; // eax
  Il2CppObject *v7; // edi
  System_Collections_Generic_Dictionary_TKey__TValue__o *v8; // eax
  int v10; // eax
  int v11; // eax

  if ( !byte_1059BC60 )
  {
    sub_100CD270(1700);
    byte_1059BC60 = 1;
  }
  //var c = new Class2[255];
  v2 = (Class2_array *)il2cpp_array_new_specific(Class_Class2__, 255);
  v4 = v2;
  if ( !v2 )
    goto LABEL_18;
  if ( d && !sub_100CCFE0(d, v2->obj.klass->_1.element_class) )
  {
    v10 = sub_100CD1A0();
    sub_100CD380(v10, 0);
  }
  if ( v4->max_length <= 50 )
  {
    v11 = sub_100CD1E0();
    sub_100CD380(v11, 0);
  }
  //c[50] = d;
  v4->m_Items[50] = d;
  v5 = Class_Class3;
  if ( Class_Class3->_2.bitflags2 & 2 && !Class_Class3->_2.cctor_finished )
  {
    il2cpp_runtime_class_init((unsigned int)Class_Class3);
    v5 = Class_Class3;
  }
  //var e = d.Sub(b);
  v3 = (Class3_o *)v5->static_fields->b;
  if ( !d
    || (v6 = ((int (__cdecl *)(Class2_o *, Class3_o *, void *))d->klass->vtable._5_Sub.methodPtr)(
               d,
               v3,
               d->klass->vtable._5_Sub.method),
        v3 = this,
        v7 = (Il2CppObject *)v6,
        (v8 = (System_Collections_Generic_Dictionary_TKey__TValue__o *)this->a) == 0) )
  {
LABEL_18:
    sub_100CD3B0(v3);
  }
  //a.Add(d, e);
  System_Collections_Generic_Dictionary_TKey__TValue___Add(v8, (Il2CppObject *)d, v7);
  //return e;
  return (int32_t)v7;
}

注意对于函数中实例化的局部变量,ida没法正确判断类型,需要手动指定类型。

虽然脚本已经经过了多次测试,但是也不能保证不会报错,其中“apply_type failed”这个错误可以无视,因为ida也不给具体的错误原因,修都不知道从哪里修,其他错误的话欢迎在github或者这里反馈。

ghidra的脚本不支持载入“il2cpp.h”,因为我暂时懒得去翻ghidra的文档了,等等看有没有大佬帮忙完善一下(

最后惯例

下载地址

百度云

Latest Build版本

源码

GitHub

双生视界Live2D提取

总算是回到家了,差点就要把这篇文章咕掉了。 在github上有人提双生视界Live2D解出来的文件载入显示有问题时,UnityLive2DExtractor的代码还没写完,所以先用...

阅读全文

UnityLive2DExtractor

摸了好久终于是把这玩意摸完了。 程序在原本AzurLaneLive2DExtract基础上,除了一些bug修复和细节完善,最主要的是实现了physics3.json的还原,这样其他游戏...

阅读全文

Il2CppDumper v4.4.2

程序已更新,有任何问题请去最新文章下留言 最近一段时间又更新了一下Il2CppDumper,除了支持switch的NSO格式外,最主要的还是完整处理了下MetadataUsage,现...

阅读全文

87 条评论

  1. 您是否有计划更新 Unity 2023 版本的支持?
    Do you have any plans to update support by Unity 2023 version?

  2. 你好!

    Hello,

    Can you update il2cpp to support v31 please

    Initializing metadata…
    System.NotSupportedException: ERROR: Metadata file supplied is not a supported version[31].
    at Il2CppDumper.Metadata..ctor(Stream stream) in C:\projects\il2cppdumper\Il2CppDumper\Il2Cpp\Metadata.cs:line 57
    at Il2CppDumper.Program.Init(String il2cppPath, String metadataPath, Metadata& metadata, Il2Cpp& il2Cpp) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 124
    at Il2CppDumper.Program.Main(String[] args) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 98
    Press any key to exit…

  3. 双生视界dump不出来,出现下面错误,请问是什么原因
    Initializing metadata…
    Metadata Version: 29
    Initializing il2cpp file…
    Il2Cpp Version: 29
    Searching…
    Change il2cpp version to: 29.1
    CodeRegistration : 1855d5f60
    MetadataRegistration : 185de7420
    Dumping…
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    ERROR: Some errors in dumping
    Done!
    Generate struct…
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Il2CppDumper.Il2CppExecutor.GetTypeDefinitionFromIl2CppType(Il2CppType il2CppType) in C:\projects\il2cppdumper\Il2CppDumper\Utils\Il2CppExecutor.cs:line 295
    at Il2CppDumper.Il2CppExecutor.GetTypeName(Il2CppType il2CppType, Boolean addNamespace, Boolean is_nested) in C:\projects\il2cppdumper\Il2CppDumper\Utils\Il2CppExecutor.cs:line 101
    at Il2CppDumper.Il2CppExecutor.GetTypeDefName(Il2CppTypeDefinition typeDef, Boolean addNamespace, Boolean genericParameter) in C:\projects\il2cppdumper\Il2CppDumper\Utils\Il2CppExecutor.cs:line 154
    at Il2CppDumper.StructGenerator.CreateStructNameDic(Il2CppTypeDefinition typeDef) in C:\projects\il2cppdumper\Il2CppDumper\Outputs\StructGenerator.cs:line 981
    at Il2CppDumper.StructGenerator.WriteScript(String outputDir) in C:\projects\il2cppdumper\Il2CppDumper\Outputs\StructGenerator.cs:line 55
    at Il2CppDumper.Program.Dump(Metadata metadata, Il2Cpp il2Cpp, String outputDir) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 266
    at Il2CppDumper.Program.Main(String[] args) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 100
    Press any key to exit…

  4. Initializing metadata…
    Metadata Version: 27
    Initializing il2cpp file…
    Il2Cpp Version: 27
    Searching…
    CodeRegistration : 0
    MetadataRegistration : 0
    Use custom PE loader
    System.ComponentModel.Win32Exception (126): 找不到指定的模块。
    at Il2CppDumper.PELoader.Load(String fileName) in C:\projects\il2cppdumper\Il2CppDumper\Utils\PELoader.cs:line 48
    at Il2CppDumper.Program.Init(String il2cppPath, String metadataPath, Metadata& metadata, Il2Cpp& il2Cpp) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 217
    ERROR: An error occurred while processing.
    Press any key to exit…
    :?: :?: :?:

    1. 这个dll加壳了,调用了外部的其他dll,你需要把Il2CppDumper.exe放到跟dll原始目录一起,不过大概率还是会因为加壳的原因dump失败

    2. P神,现在很多游戏都使用热更新,老的使用lua,新的很多都开始用HybridCLR等之类的,核心函数都在热更新dll中。通过内存可以dump出来热更新的dll,但是却没办法用il2cppdumper这类的软件直接获取dump.cs文件 (无法获得热更新部分的函数内存偏移等数据)。那这种情况下怎么把热更新的函数也dump出来呢?

  5. Initializing metadata…
    System.Collections.Generic.KeyNotFoundException: The given key ‘kIl2CppMetadataUsageInvalid’ was not present in the dictionary.
    at Il2CppDumper.Metadata.ProcessingMetadataUsage() in C:\projects\il2cppdumper\Il2CppDumper\Il2Cpp\Metadata.cs:line 235
    at Il2CppDumper.Metadata..ctor(Stream stream) in C:\projects\il2cppdumper\Il2CppDumper\Il2Cpp\Metadata.cs:line 121
    at Il2CppDumper.Program.Init(String il2cppPath, String metadataPath, Metadata& metadata, Il2Cpp& il2Cpp) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 124
    at Il2CppDumper.Program.Main(String[] args) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 98
    Press any key to exit…
    请问这是什么情况啊

  6. Initializing metadata…
    Metadata Version: 24
    Initializing il2cpp file…
    System.NotSupportedException: ERROR: il2cpp file not supported.
    在 Il2CppDumper.Program.Init(String il2cppPath, String metadataPath, Metadata& metadata, Il2Cpp& il2Cpp) 位置 C:\projects\il2cppdumper\Il2CppDumper\Program.cs:行号 124
    在 Il2CppDumper.Program.Main(String[] args) 位置 C:\projects\il2cppdumper\Il2CppDumper\Program.cs:行号 100
    Press any key to exit…

    请问大大,这是什么原因呢?用010editor看了global-metadata.dat是没有加密的。
    难道是我缺了什么组件吗?

    期待您的回复!

  7. 万能的网友们!ios的app砸壳后macho只有80k,我百度了一下数据是放到framework文件夹里了,现在Dump报错了,恢复不了符号表,有解决办法吗?

    1. 感谢大佬,已经换回7.5了。然后弱弱地问一个关于HOOK的问题,我想给一个PC端(il2cpp)卡牌游戏添加导入导出卡组的功能(Master Duel),我找到了添加卡牌的函数的地址,我尝试手动调用它。地址,参数,返回值都正确,而且CE动态调试的断点也显示代码被执行到了,但游戏还是马上崩溃了,跟踪到最后也没明白为什么崩溃,崩溃的地方也没用到我传进去的参数。但都是一些静态函数,即使跳过一个导致崩溃的call,后面依旧会崩溃,而且跳过的函数并不给崩溃的函数提供数据……
      最后我甚至保证了它自己调用,和我手动调用时的寄存器状态,栈全都一致,至少中途用到的数据一致,然而还是崩溃了。我调用最外层的添加卡牌按钮的点击事件,结果也是一样。然后我还尝试调用了一些别的函数,除了一个显示进度条的函数正常执行,其它无一例外的崩溃,这种问题大佬有什么思路吗?我能想到的问题就只有线程,因为我是把DLL注入以后,在DLL里调用的。

    2. 你可以参考我另外一篇讲Il2Cpp Api的文章,里面有提到了一些事前准备和函数调用的注意事项,比如你说到的线程,dll注入后你需要先调用il2cpp_thread_attach,当然可能也不一定是这个原因,这个只能你自己慢慢研究了

  8. Initializing metadata…
    System.Collections.Generic.KeyNotFoundException: 给定关键字不在字典中。
    在 System.ThrowHelper.ThrowKeyNotFoundException()
    在 System.Collections.Generic.Dictionary`2.get_Item(TKey key)
    在 Il2CppDumper.Metadata.ProcessingMetadataUsage() 位置 C:\projects\il2cppdumper\Il2CppDumper\Il2Cpp\Metadata.cs:行号 218
    在 Il2CppDumper.Metadata..ctor(Stream stream) 位置 C:\projects\il2cppdumper\Il2CppDumper\Il2Cpp\Metadata.cs:行号 124
    在 Il2CppDumper.Program.Init(String il2cppPath, String metadataPath, Metadata& metadata, Il2Cpp& il2Cpp) 位置 C:\projects\il2cppdumper\Il2CppDumper\Program.cs:行号 126
    在 Il2CppDumper.Program.Main(String[] args) 位置 C:\projects\il2cppdumper\Il2CppDumper\Program.cs:行号 100
    Press any key to exit…

    请问这是什么情况呀?搜也搜不到,github介绍的常见问题里也没有

  9. 碰到硬茬了,奥比岛,电脑上用不了,用手机模块游戏直接闪退,也没有dump.cs

  10. 大佬 我是逆向小白 请问为啥脚本导入了ida with struct ida就会卡死 但是单纯的导入ida·py 就不会卡死

  11. World Witches安卓64位 IDA7.0+Python2.7 工具6.6.5 执行ida_with_struct.py狂报错
    ……
    中间省略N多屏
    ……
    Syntax error near: System_Collections_Generic_List_IntervalTreeNode__c
    apply_type failed: 0x514d6e8L System_Collections_Generic_List_IntervalTreeNode__c*
    Syntax error near: System_Collections_Generic_List_Enumerator_Vector2__c
    apply_type failed: 0x5107190L System_Collections_Generic_List_Enumerator_Vector2__c*
    Syntax error near: UnityEngine_Events_UnityAction_BaseEventData__c
    apply_type failed: 0x510c2f8L UnityEngine_Events_UnityAction_BaseEventData__c*
    Syntax error near: WW_ItemBox_View_IItemBoxScrollCellData_c
    apply_type failed: 0x514c980L WW_ItemBox_View_IItemBoxScrollCellData_c*
    Syntax error near: System_Func_Button__bool__c
    apply_type failed: 0x5165690L System_Func_Button__bool__c*
    Syntax error near: WW_UI_SortFilterGroupData_c
    apply_type failed: 0x5101de0L WW_UI_SortFilterGroupData_c*
    Syntax error near: System_Func_int__int__Tuple_int__int___c
    apply_type failed: 0x5154da8L System_Func_int__int__Tuple_int__int___c*
    Syntax error near: System_Action_Tuple_int__int___c
    apply_type failed: 0x5125d88L System_Action_Tuple_int__int___c*
    Syntax error near: __f__AnonymousType2_int__float__c
    apply_type failed: 0x5171ed8L __f__AnonymousType2_int__float__c*
    Syntax error near: System_Func_float__int____f__AnonymousType2_int__float___c
    apply_type failed: 0x50ff7b8L System_Func_float__int____f__AnonymousType2_int__float___c*
    Syntax error near: System_Func___f__AnonymousType2_int__float___float__c
    apply_type failed: 0x513b360L System_Func___f__AnonymousType2_int__float___float__c*
    Syntax error near: Zenject_BindStatement_c
    apply_type failed: 0x51267a8L Zenject_BindStatement_c*
    Syntax error near: Zenject_PoolExceededFixedSizeException_c
    apply_type failed: 0x5176570L Zenject_PoolExceededFixedSizeException_c*
    Syntax error near: Zenject_ScopeTypes_c
    apply_type failed: 0x50fb9d8L Zenject_ScopeTypes_c*
    Script finished!
    这正常吗? :?:

  12. 大佬打扰了 想导入script.json到ida当中 但是我的ida只能导入.idc或者.py后缀的文件 请问该怎么操作呢 :shock:

  13. 打扰大佬了,我是一名小白,使用AssetStudio没有拆出资源怀疑是加密了,成功用Il2CppDumper拆出DummyDll文件夹,但接下来不知道该如何提取spine,网上搜到的相关都是修改游戏数据,大佬是否能指点一下,或者指路现有的教程呢,十分感谢

    1. 我也是啊,顶一下你,希望作者回复一下,我也拆出dll文件,就是找不到解密ab包的逻辑,求指教

  14. 大佬,请问使用iL2CPP打包的U3D游戏,游戏的配置表一般在什么地方?是在\assets\bin\Data文件夹下面的ASSET文件里面,还是在SO文件里面呢?

  15. Init ializing me tadata….Me tadata Version: 24.1

    In it ializ ing il2cpp f ile.. .

    Detected this maybeadumpfile

    Input il2cpp dump address or input a to force cont inue:Øx7f 554bØØ0

    I 12Cpp Version: 24.1Se arching- . –

    Code Regis trat ion

    Me t adat aRegis trat ion :0

    ERROR : No symbol is detected

    ERROR: Gan’t use auto mode to process file. try manual mode Input Code Reg is trat ion:
    怎么解决

  16. 新版(包括这里的610和github的624)都有个细微问题
    举例以前的dump文件都是
    public static void xxxx() //RVA: 0xXXXXXXXX Offset: 0xXXXXXXXX VA: 0xXXXXXXXX
    public void .ctor(); //RVA: 0xXXXXXXXX Offset: 0xXXXXXXXX VA: 0xXXXXXXXX
    (…)

    现在每一行直接加了空格变成了
    //RVA: 0xXXXXXXXX Offset: 0xXXXXXXXX VA: 0xXXXXXXXX
    public static void xxxx()

    //RVA: 0xXXXXXXXX Offset: 0xXXXXXXXX VA: 0xXXXXXXXX
    public void .ctor();

    //RVA: 0xXXXXXXXX Offset: 0xXXXXXXXX VA: 0xXXXXXXXX
    (…)

    造成的结果就是比如用notepad++搜索某个方法非常慢,以前可以瞬间最多一两秒搜索出来的结果现在可能要10-20秒
    尤其是如果有很多同名方法的情况下搜索速度会更慢

  17. 最近试用一下https://github.com/djkaty/Il2CppInspector 发现它这个能导出保存在metadata的常量
    比如
    public const int kTargetFps = 60; // Metadata: 0x00AD3895
    public const float kTargetFpsF = 60f; // Metadata: 0x00AD3899
    public const float kFrameToSec = 0.016666668f; // Metadata: 0x00AD389D
    但il2cppdumper给出的dummydll却是
    [Il2CppDummyDll.FieldOffset(Offset = “0x0”)]
    public const int kTargetFps = 60;

    [Il2CppDummyDll.FieldOffset(Offset = “0x0”)]
    public const float kTargetFpsF = 60f;

    [Il2CppDummyDll.FieldOffset(Offset = “0x0”)]
    public const float kFrameToSec = 0.0166666675f;
    希望能考虑支持给出常量在MetaData的地址

    1. 根据你贴的信息来看,我姑且认为你是想直接修改常量的值?
      但是常量在编译后,除了string类型的值转成stringliteral后还是存储在metadata中,其他值类型都是编译时就替换成了具体的值,修改metadata也没有任何效果,所以我认为输出常量的metadata offset没有任何意义。
      至于数组类型初始化所用到的值是会在dump.cs里输出metadata offset的。

    2. [FieldOffset(Offset = “0x0”)]
      public const string LEGACY_SUFFIX = “_legacy”;
      给个地址呗,有时可能也要改字符串;开两个工具看还有点麻烦

    3. 其他值类型都是编译时就替换成了具体的值,修改metadata也没有任何效果——那么想要改非string常量 该怎么做呢 :?:

    4. 常量只是在编译时期用的数据,string常量转成stringliteral后的metadata offset跟原本string常量的metadata offset是不一样的,你修改原本string常量值并不会改变已经编译成stringliteral的值。只是stringliteral依旧存储在metadata中,你搜索“_legacy”应该可以搜到两个一样的字符串。
      要修改非string的常量就直接修改il2cpp的代码。

  18. System.IO.InvalidDataException: ERROR: Metadata file supplied is not valid metadata file.
    於 Il2CppDumper.Program.Init(Byte[] il2cppBytes, Byte[] metadataBytes, Metadata& metadata, Il2Cpp& il2Cpp) 於 C:\projects\il2cppdumper\Il2CppDumper\Program.cs: 行 119
    於 Il2CppDumper.Program.Main(String[] args) 於 C:\projects\il2cppdumper\Il2CppDumper\Program.cs: 行 81
    Press any key to exit…

    求大佬解答

    1. 解决了吗,同问。看报错是global-metadata.dat不能正确识别,昨天以为是unity更新了文件结构,但是刚刚查了一下,unity最新的是2019年发布的,所以估计是Java层或者so层对这个文件加密了。 :???:

  19. 大佬,出现以下错误:

    Initializing metadata…
    Metadata Version: 24.1
    Initializing il2cpp file…
    Select Platform: 1.32bit 2.64bit
    Il2Cpp Version: 24.1
    Searching…
    CodeRegistration : 100f37560
    MetadataRegistration : 100f655c8
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Il2CppDumper.Il2Cpp.Init(UInt64 codeRegistration, UInt64 metadataRegistration) in C:\projects\il2cppdumper\Il2CppDumper\Il2Cpp\Il2Cpp.cs:line 72
    at Il2CppDumper.Il2Cpp.AutoInit(UInt64 codeRegistration, UInt64 metadataRegistration) in C:\projects\il2cppdumper\Il2CppDumper\Il2Cpp\Il2Cpp.cs:line 65
    at Il2CppDumper.Macho64.PlusSearch(Int32 methodCount, Int32 typeDefinitionsCount) in C:\projects\il2cppdumper\Il2CppDumper\ExecutableFormats\Macho64.cs:line 198
    at Il2CppDumper.Program.Init(Byte[] il2cppBytes, Byte[] metadataBytes, Metadata& metadata, Il2Cpp& il2Cpp) in C:\projects\il2cppdumper\Il2CppDumper\Program.cs:line 175
    ERROR: An error occurred while processing.

  20. 大佬我想知道手游的角色台词在哪个文件(global-metadata.dat里找不到 :!: ),怎么查看? :?:

  21. 为什么更改格式
    I was wondering why you changed the format of the cs file

    it was like this with the string and offset on the same line
    public static WeeklyEvent get_ActiveWeeklyEvent() { } // RVA: 0x12C693C Offset: 0x12C693C

    but now you have split this into two lines and changed the order like this
    // RVA: 0x12C693C Offset: 0x12C693C VA: 0x77FFA2E93C
    public static WeeklyEvent get_ActiveWeeklyEvent() { }

    this seems illogical and makes automated parsing of the file quite a pain

  22. Assembly-CSharp.dll没有加密也没有global-metadata.dat 怎么用这个软件dump看结构 类名 偏移呢?

    1. 么有VIP 没法下载. :cry:
      之前看过hearthbuddy在Windows上的操作. 是通过RemoteThread 注入 反编译指令完成的.
      Android这种dump也是利用android上的某些特性才对.

  23. 大佬本人萌新 用gg脱出il2cpp之后用dump不出来提示被保护之后要怎么操作?

  24. 大佬你在github上说被保护的so文件需要用gg从内存dump出来
    要怎么dump。。。。

  25. 使用ida_with_struct.py 并依次选择 stringliteral.json il2cpp.h 后,ida报

    ida_with_struct.py: parse_decls expected 4 arguments, got 2
    Traceback (most recent call last):
    File “省略路径\ida_idaapi.py”, line 553, in IDAPython_ExecScript
    execfile(script, g)
    File “省略路径/ida_with_struct.py”, line 25, in
    parse_decls(open(hpath, ‘rb’).read(), 0)
    File “省略路径\ida_typeinf.py”, line 2205, in parse_decls
    return _ida_typeinf.parse_decls(*args)
    TypeError: parse_decls expected 4 arguments, got 2
    能提供一下解决思路么,感谢

    1. 重新尝试了下,可能跟我选择的情况有问题有关,我这次选择顺序是ida_with_struct.py ->script.json ->il2cpp.h这样的顺序
      之前是ida_with_struct.py ->stringliteral.json ->il2cpp.h 前者顺序是对的么?

    1. 大佬,新版本报错了
      Il2CppDumper v6.4.19
      Il2Cpp Version: 24.2

      Initializing metadata…
      Metadata Version: 24.2
      Initializing il2cpp file…
      Il2Cpp Version: 24.2
      Searching…
      CodeRegistration : 10337efd8
      MetadataRegistration : 10342cfa0
      Dumping…
      ERROR: Some errors in dumping
      ERROR: Some errors in dumping
      ERROR: Some errors in dumping
      Done!
      Generate script…
      System.ArgumentOutOfRangeException

  26. 大佬。用你的Il2CppDumper v6.1.0给il2cpp.so dump出来后,用ida反编译il2cpp.so
    完成后导入il2cpp.so的脚本,到这里就没有可以导入的脚本了,这个版本怎么导入呢,求大佬指教一下。

  27. 大佬你好,之前你所写的双生视界的Live2d提取方法能用到约战.精灵再临这款游戏里的看板提取吗, :!: 我怀疑它里面的physics3文件也经过了加密,可我不知道怎么解出来,游戏虽然不怎么样但它里面的高级看板还是挺精美的,求大佬解答

  28. 双生视界dump不出来,出现下面错误,请问是什么原因
    Initializing metadata…
    Metadata Version: 24.1
    Initializing il2cpp file…
    Applying relocations…
    WARNING: find .init_proc
    ERROR: This file may be protected.
    Il2Cpp Version: 24.1
    Searching…
    CodeRegistration : 3ca5074
    MetadataRegistration : 3ca50ac
    System.IndexOutOfRangeException: 索引超出了数组界限。
    在 Il2CppDumper.Il2Cpp.Init(UInt64 codeRegistration, UInt64 metadataRegistration)
    在 Il2CppDumper.Il2Cpp.AutoInit(UInt64 codeRegistration, UInt64 metadataRegistration)
    在 Il2CppDumper.Program.Init(Byte[] il2cppBytes, Byte[] metadataBytes, Metadata& metadata, Il2Cpp& il2Cpp)
    ERROR: An error occurred while processing.

  29. ghidra的脚本要怎么用?我下了ghidra最新版,但是不知道怎么导入这个脚本。直接导入的话,选择Language应该选哪个?

欢迎留言

6 + 4 =