精华内容
下载资源
问答
  • il2cpp 逆向 破解

    2018-08-20 11:59:11
    逆向il2cpp,恢复类名,方法名。分析源代码
  • 文章转移 FakerAndroid-AS

    文章转移

    FakerAndroid-AS

    展开全文
  • Unity il2cpp逆向工程师 产品特点 完整的DLL还原(代码除外),可用于提取MonoBehaviour和MonoScript 支持ELF,ELF64,Mach-O,PE,NSO和WASM格式 支持Unity 5.3-2020 支持生成IDA和Ghidra脚本,以帮助IDA和Ghidra...
  • Il2CppInspector可帮助您对IL2CPP应用程序进行逆向工程,从而提供当前可用的最完整的分析。 主要特点 将IL2CPP类型定义,元数据和方法指针输出为 创建包含在反编译诸如用于使用IL2CPP应用结构和元数据.NET组件垫片...
  • frida-il2cpp 那些想玩Unity il2cpp游戏的人的帮助库。 在Windows上进行了测试,但也可以轻松在Android / iOS上使用。 我认为只有Process.findModuleByName("GameAssembly.dll")!; il2cpp.ts需要更改。 示例类 ...
  • Frida 安卓逆向破解Unity游戏IL2CPP

    千次阅读 2021-03-23 23:09:46
    准备一个要被破解的APP ... 接下来用hook技术把这两个值改成...如果有libil2cpp.so 则说明是IL2CPP模式下构建的安装包 将这个libil2cpp.so 反编译看一下里面的函数 需要用到工具 1. il2cpp dumper 2. dnspy 打开il2cp

    准备一个要被破解的APP
    在这里插入图片描述
    这个游戏的功能是点击刷新 后生命值增加到8 魔法值增加到10
    在这里插入图片描述
    接下来用hook技术把这两个值改成9999


    将安装包后缀.apk 改为.zip 解压
    在这里插入图片描述
    打开lib 文件夹

    如果lib文件夹下或者在下层的子文件夹中有包含libunity.so则说明是unity制作的游戏

    如果有libil2cpp.so 则说明是IL2CPP模式下构建的安装包
    在这里插入图片描述
    将这个libil2cpp.so 反编译看一下里面的函数
    需要用到工具

    1. il2cpp dumper
    2. dnspy


    打开il2cpp dumper.exe

    第一个弹框选择文件lib2cpp.so
    在这里插入图片描述

    第二个弹框的文件选择assets/bin/Data/Managed/Metadata/global-metadata.dat
    在这里插入图片描述

    出现下图说明成功 失败有可能是有加密 需要手动模式 这里只说明成功的
    在这里插入图片描述
    此时会在IL2CPPDUMPER安装目录同级目录下出现DummyDll文件夹 下面有一个反编译出来的dll
    在这里插入图片描述


    打开dnSpy.exe在这里插入图片描述
    将刚才反编译出来的Assembly-CSharp.dll拖进去

    在这里插入图片描述

    找到按钮对应的函数 Refresh(int,int)
    在这里插入图片描述

    基址偏移是0x781D90

    接下来用frida hook这个函数并修改

    没用过得frida的看这个frida 下载安装与使用基础

    在js代码中写下

    // 程序入口
    Java.perform(function() 
    {
        // 获取模块
        var module = Process.getModuleByName("libil2cpp.so")
        // 转为函数地址
        var addr=module.base.add("0x753B7B");
        // 获取函数入口
        var func =  new NativePointer(addr.toString());
    
        console.log('[+] hook '+func.toString())
    
        // 函数hook钩子附加
        Interceptor.attach(func, {
            onEnter: function (args) { 
                console.log('hook success')
    
                //输入参数
                args[1] = ptr(999)
                args[2] = ptr(888)
    
            },
            onLeave: function (retval) {
                console.log('method onleave')
            }
        });
    });
    

    执行后成功显示
    在这里插入图片描述

    展开全文
  • 当apk是统一的il2cpp游戏时,可以将apk文件转换为stantard android项目的工具包括钩子api和il2cpp c ++脚手架。 概括 优雅地在apk文件上编写代码。 可以将Apk文件直接转换为Android项目以进行二次开发,因此支持...
  • 当apk是统一的il2cpp游戏时,将apk文件转换为stantard android项目的工具包括钩子api和il2cpp c ++脚手架。 概括 优雅地在apk文件上编写代码。 可以将Apk文件直接转换为Android项目进行二次开发,因此很受支持。 ...
  • 随着unity技术的发展及厂商对于脚本源码的保护,很大一部分U3D应用的scripting backend已经由mono转为了il2cpp,本文从unity简单应用的制作讲起,介绍U3D应用脚本的Assembly-CSharp.dll的逆向il2cpp.so的逆向分析...

    https://bbs.pediy.com/thread-223467.htm

    随着unity技术的发展及厂商对于脚本源码的保护,很大一部分U3D应用的scripting backend已经由mono转为了il2cpp,本文从unity简单应用的制作讲起,介绍U3D应用脚本的Assembly-CSharp.dll的逆向及il2cpp.so的逆向分析。

     

    目录如下:

    0x1.U3D应用制作  →  输出两个apk,分别为mono和il2cpp

    0x2.mono后台apk的逆向分析  →  Assembly-CSharp.dll 逆向修改

    0x3.il2cpp后台apk的逆向分析  →  il2cpp.so逆向修改

     

    正文内容:

    0x1.U3D应用制作

    工具:Unity最新版本 2017.2.1f1

    1.1  创建Project

    新建一个Unity3D Project,Project name为UnityTest,如下图

     

     

    1.2  创建script定义界面元素

    创建GameObject和C# Script,均命名为Sample, 同时创建两个UI Text,分别命名为HP和Attack。打开C# Script,进行界面元素的义,创建三个矩形按钮分别为HP,ATK和LevelUP,设置点击HP显示100,点击ATK显示50,点击LevelUP后HP和ATK的值都翻倍。

    代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    using UnityEngine;
    using UnityEngine.UI;
    public  class  Sample : MonoBehaviour
    {
             public Text _hp;
             public Text _attack;
     
             private Rect _healRect  =  new Rect( 10f 20f 300f 100f );
             private Rect _attackRect  =  new Rect( 10f 170f 300f 100f );
             private Rect _LevelUpRect  =  new Rect( 10f 320f 300f 100f );
     
             public void SetHp( int  hp)
         {
             _hp.text  =  hp.ToString();
         }
     
         public void SetAttack( int  attack)
         {
             _attack.text  =  attack.ToString();
         }
     
         public void OnGUI()
         {
             int  hp_value  =  100 ;
             int  attack_value  =  50 ;
             if  (GUI.Button(_healRect,  "HP" ))
                 {
                     SetHp(hp_value);
                 }
             if  (GUI.Button(_attackRect,  "ATK" ))
                 {
                     SetAttack(attack_value);
                 }
             if  (GUI.Button(_LevelUpRect,  "LevelUp" ))
                 {
                     SetHp(hp_value  *  2 );
                     SetAttack(attack_value  *  2 );
                 }
             }
    }

    代码和界面完成后,我们设置包名(com.test.test)进行打包,分别输出mono后台和il2cpp后台的apk。

    点击Player Setting进行后台设置,可点击Scripting Backend选择mono或者il2cpp。

    得到的apk我们分别命名为Sample-mono.apk和Sample-il2cpp.apk。

    安装测试正常,界面如下:

    初始界面

    点击HP和ATK后界面

    点击LevelUp后界面

    至此,我们完成了两种后台的apk的创建,接下来先对mono后台的apk进行逆向分析。

     

    0x2.mono后台apk的逆向分析

    工具:Android Killer,DnSpy

    思路:将Sample-il2cpp.apk拖拽进Android Killer进行反编译,获取到脚本文件/Assets/bin/Data/Managed/Assembly-CSharp.dll,dll拖进DnSpy进行反编译分析,修改关键method后,保存并重新打包运行。

    Android Killer部分不再上图,Assembly-CSharp.dll拖拽进DnSpy,我们可以很轻易的找到我们需要的关键函数,如图:

    根据代码信息,我们可以确定,num为初始HP,num2为初始ATK,我们在此通过编辑IL指令将他们的值分别改为1000和500,如图:

    确认后C#编码变更如下:

    保存后,重新打包apk安装测试结果如下:

    至此,我们的mono后台apk修改已经完成,接下来我们进行il2cpp后台apk的修改。

     

    0x3.il2cpp后台apk的逆向分析

    工具:Android Killer,il2cppDumper,IDA,010Editor

    思路:利用il2cppDumper获取到关键函数的offset后,使用IDA找到关键函数,分析汇编语言逻辑后,利用010Editor进行16进制文件编辑来实现修改。

    Android Killer相关操作再次不做赘述,反编译后我们得到的Project中,lib目录如图:

    在此我们只分析armeabi-v7a文件夹下的libil2cpp.so,x86为intel架构,暂不做分析处理。

    将il2cpp.so连同assets\bin\Data\Managed\Metadata 目录下的global-metadata.dat 文件一起放进il2cppDumper目录。

    运行il2cppDumper,第一步,选择il2cpp.so

    第二步,选择global-metadata.dat

    进入到il2cppDumper控制台界面

    选择mode后可以得到Dump.cs,包含关键函数的偏移信息

    打开Dump.cs,找到关键函数的偏移信息

    用IDA打开libil2cpp.so文件,跳转到此偏移地址 0x7CE514

    定位到关键函数后,我们可以看汇编,也可以F5插件看伪代码,为了便于理解我们这里F5处理一下

     

    这次我们从LevelUp入手,我们在编写源码的时候,是进行了乘以2的处理,为什么汇编语言中是直接将翻倍后的数值进行传参呢,因为汇编不会完全跟我们源码的逻辑相同,但是结果一定是一样的,LevelUp的汇编代码如下

     

    切换到对应的地址查看16进制

    0xC8即为200,我们使用010Editor将其地址7CE6B4的值修改为FF(十进制为255)

     

    保存后替换lib/armeabi-v7a目录下的libil2cpp.so文件,打包运行,结果如下

    至此,il2cpp后台的apk已修改完毕。

    -------附件------

    源码见附件,下载后请先open scence再进行building,scence路径Assets/Scences/Sample.unity

    APK请网盘下载,如下:

    链接: Sample-mono.apk 密码: fua5

    链接: Sample-il2cpp.apk 密码: qpav

     

     


     

    [培训]科锐逆向工程师培训班38期--远程教学预课班将于 2020年5月28日 正式开班!

    上传的附件:

     

     

     

    展开全文
  • IL2CPP反汇编程序。 开启Apk 选择apk,它会自动展开和反汇编。 像代码编辑器一样,您可以看到反汇编的结果。 比较Apks 选择两个apk,并显示它们之间的差异。 如果存在差异,则更改背景色。 入门 视窗 下载 打开...
  • il2cpp 源码

    2018-10-23 20:23:43
    Unity3D安装目录下头文件以及源码. D:\Program Files\2017.2.1p2\Editor\Data\il2cpp\libil2cpp

    Unity3D安装目录下头文件以及源码.

    D:\Program Files\2017.2.1p2\Editor\Data\il2cpp\libil2cpp

    展开全文
  • 直接将Apk文件转换为可以进行二次开发的Android项目的工具,支持so hook,对于il2cpp的游戏apk直接生成il2cpp c++脚手架 将痛苦的逆向环境,转化为舒服的开发环境,告别汇编,告别二进制,还有啥好说的~~! 特点 ...
  • 2、cmd切换到FakerAndroid.jar平级目录 [工具包和要操作的Apk] [工具包目录] 3、执行 java -jar FakerAndroid.jar fk <apkpath>生成AndroidStudio工程 [执行命令] [等待命令执行完成]
  • il2cpp-master.rar

    2019-09-28 12:35:39
    1、c#代码转换成c++ 代码,提高效率,能把c#代码提高接近c++的代码 2、这个逆向也可以用
  • 转载 https://zhuanlan.zhihu.com/p/32468958
  • 超简单的il2cpp游戏修改教程

    万次阅读 2017-10-10 13:56:19
    锁链战记3.0版本也是换上了il2cpp,所以刚好就用它来写一篇简单的il2cpp修改教程 使用的是日服3.0.1版的锁链战记 首先要使用一款工具:Il2CppDumper,暑假pokemon go火起来的时候国外出现了一堆U3D的修改工具,...
  • U3D游戏《东方新世界》Il2Cpp破解详细教程U3D游戏《东方新世界》Il2Cpp破解详细教程
  • 文章目录一、前言二、下载IL2CppDumper三、Unity Demo工程四、IL2CPP打包五、拿到libil2cpp.so与global-metadata.dat六、执行Il2CppDumper.exe七、查看反编译后的文件1、dump.cs2、il2cpp.h3、script.json4、string...
  • FairGuard 开发了il2cpp global-metadata.dat 加密方案(同时支持 Android / iOS / Windows),防止il2cpp.so和global-metadata.dat 被 IL2cppDumper 等工具解析。
  • 如何对il2cpp进行加固保护?

    千次阅读 2021-01-05 17:25:59
    但是在2015年发布Unity5的时候,Unity3D官方推出了il2cpp。根据Unity官方给出的解释,推出il2cpp的原因主要是以下几点: 1. C#的运行效率还是远落后于C/C++ 2. mono版本授权受限,无法使用.NET的许多新特性 3. ...
  • IL2CPP深入详解-总览

    2019-10-31 16:15:00
    导语 该系列将会分为以下几个部分:1. 总览(本文)2. c++代码解析3. 调试c++代码4. 方法调用(一般方法,虚方法等)...IL2CPP 是 Unity 自 4.6.1p5版本 提出的一种新的 scripting backend 方式,为Unity提供了更...
  • A tool translate a apk file to common android project and support so hook include il2cpp c++ scaffolding FakerAndroid A tool translate apk file to common android project and support so hook and ...
  • IL2CPP深入讲解:方法调用介绍 IL2CPP INTERNALS: METHOD CALLS 作者:JOSH PETERSON 翻译:Bowie 这里是本系列的第四篇博文。在这篇文章里,我们将看到il2cpp.exe如何为托管代码中的各种函数调用生成C++代码。我们...
  • IL2Cpp简易加密方法

    千次阅读 2019-06-24 18:38:10
    打开Unity安装目录Editor\Data\il2cpp\libil2cpp\vm,找到MetadataCache.cpp和MetadataLoader.cpp,MetadataCache::Initialize中通过MetadataLoader::LoadMetadataFile加载了global-metadata.dat,据此即可对dat进行...
  • 点击上方↑↑↑蓝字[协议分析与还原]关注我们“学习unity3d游戏的算法逆向。”大家应该有印象,之前为分析菠菜应用,我写过简单的cocos2d游戏的逆向:cocos2d游戏jsc文件...
  • IL2CPP根据C#生成的Cpp代码行数巨大,达到百万行级别,进而引起iOS平台可执行文件超过60MB的问题。因此在适当的时候有必要对UnityEngine下的代码进行Strip。但是这样做容易带来如下的问题...
  • IL2CPP根据C#生成的Cpp代码行数巨大,达到百万行级别,进而引起iOS平台可执行文件超过60MB的问题。因此在适当的时候有必要对UnityEngine下的代码进行Strip。但是这样做容易带来如下的问题: ReportException: ...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 248
精华内容 99
关键字:

il2cpp逆向