手机版
  • 您还未登录,请
  • 发布时间:2026-02-02 19:28:30
    浏览 1618    回复 0
    青帝
    会员

    一次关于Uniy导出混淆的分析

    导语:不提供任何工具,仅做思路分享。所以本教程你必须具备一定的工具自写的基础

    部分游戏加固,会对主逻辑库进行混淆。当导出表混淆后,大部分情况下我们的自更会失效(基于导出函数的寻址),所有api基本消失如下方可见:

    常规dump也会失效,如果单纯dat加密so不加密,难度不高问题便在于双加密涉及到动静两态的hook

    为此我们基础工具准备了:ida、frida-il2cpp-bridge

    根据相关资料、以及对unity源码的了解我们可以知道unityso和il2cpp导出api之间的联系。在ida中通过方法字符串定位unityso中的字符串交叉引用,可以获取到对应的方法指针 他们的关系公式大概为
    设unityso基址为a,cpp基址为b,Unity指针地址为c,所求api地址为x。
    即x=(a+c).指针–cpp基址

    地址获取已知,但是总共几百个api手动获取到明年吗[滑稽]所以可通过Python写下ida脚本:字符串定位、交叉引用、指针反查获取到所有的指针地址。

    然后根据我们上面的公式通过Frida获取到真实的所有地址。

    frida-il2cpp-bridge中的寻址方法更改为匹配我们frida输出结果

    再次运行frida-il2cpp-bridge开dump,就可以输出对应的cs文件。

    当然由于我们已经具备了该游戏的api,frida-il2cpp-bridge的相关功能也都可以使用自吐转存dll、hook等等都可以

    欢迎对游戏安全对抗方面有自己见解的兄弟,来进行交流。

    所有评论(0)
    请文明发表评论,恶意辱骂/诽谤,发布广告者封号处理
    反馈意见