1.AssetBundle逆向(未加密)

需要下载AssetStudio
拖入AssetStudio中,即可得到相关资源信息

2.DLL反编译

需要下载ILSpy
将dll拖入ILSpy界面,即可反编译全部代码,右键程序集->保存代码,即可得到全部csharp代码文件
将dll拖入Visual Studio等IDE同样可以自动反编译查看源代码,但貌似不方便批量保存
反编译后将丢失注释信息,若开发时使用了泛型或异步语法,反编译后的代码与原始代码可能会有较大差异,可读性低

3.il2cpp反编译(包体未加固)

需要下载Il2CppDumper

1.将{my_game}.apk后缀修改为{my_game}.zip,使用解压工具解压至文件夹{my_game}。(my_game为apk的文件名,根据具体情况有所不同)
2.在桌面新建一个input文件夹,和一个output文件夹。
3.将{my_game}\lib\armeabi-v7a\libil2cpp.so和{my_game}\assets\bin\Data\Managed\Metadata\global-metadata.dat复制到桌面input文件夹。(其中armeabi-v7a根据apk平台不同有所差异,可能是arm64-v8a或其他)
4.命令行运行il2CppDumper,其中<libil2cpp>表示input中的libil2cpp.so路径,<global-metadata>表示input中的global-metadata.dat的路径,<output>为output文件夹路径。

Il2CppDumper.exe <libil2cpp> <global-metadata> <output>

5.可见输出目录生成了output\DummyDll\Assembly-CSharp.dll等dll

4.Mono.Cecil注入修改dll

Unity自带了Mono.Cecil库,可以直接使用其修改dll
以下举例修改函数返回值

    public void PatchProtobufAssembly()
    {
        var sourcePath = Path.Combine(Application.dataPath,"Scripts/Test/TS2.dll");
        var targetPath = Path.Combine(Application.dataPath,"Scripts/Test/TS2_m.dll");
        var assembly = AssemblyDefinition.ReadAssembly(sourcePath);
        //foreach (var t in assembly.MainModule.Types) Debug.Log($"遍历type {t.Name}");
        // 找到类
        var codedInputStreamType = assembly.MainModule.Types.First(t => t.Name == "TestScriptTS2");
        //foreach (var m in codedInputStreamType.Methods) Debug.Log($"遍历method {m.Name}");
        // 找到方法
        var method = codedInputStreamType.Methods.First(m => m.Name == "Start");
        // 清空当前方法指令
        method.Body.Instructions.Clear();
        var processor = method.Body.GetILProcessor();
        // 改动返回值
        processor.Append(processor.Create(OpCodes.Ldstr, "TEST_BILLY_" + codedInputStreamType.Name));
        processor.Append(processor.Create(OpCodes.Ret));
        // 保存修改后的dll
        assembly.Write(targetPath);
        Debug.Log($"Patch successfully. {targetPath}");
    }

理论上可以做很多复杂修改,更多操作方法可见https://github.com/jbevain/cecil

 

参考文献
https://blog.csdn.net/zhangjiuding/article/details/134213699