ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Blutter 快速上手:一条命令逆向 Flutter 应用,如何做到

Blutter 快速上手:一条命令逆向 Flutter 应用,如何做到 Blutter 快速上手一条命令逆向 Flutter 应用如何做到【免费下载链接】blutterFlutter Mobile Application Reverse Engineering Tool项目地址: https://gitcode.com/gh_mirrors/bl/blutterBlutter 是一款开源的 Flutter 逆向工程工具专门针对 Android APK 里 AOT 编译的 libapp.so。你给它一个 lib 目录它自动识别目标 Dart 版本、自动编译对应的分析程序最后输出一整套反汇编、对象池转储和 Frida Hook 脚本模板。为什么 Flutter 逆向这么难如果你拆过 Flutter 的 APK大概率会被这三个坑卡住核心逻辑全在一个 so 里常规反编译工具看到的是原生层真正的业务逻辑在 AOT 编译出的 libapp.so 中没有任何 Java 类可反编译符号被剥离函数名、类名都没了丢进 IDA 里只剩一片十六进制Dart 版本碎片化不同 Dart 版本的运行时结构不一样解析工具必须跟目标版本对齐才能正确读一句话反编不出来也读不懂甚至不知道自己在看什么。Blutter 到底解决了什么Blutter 的思路不是对着字节猜而是把目标 Dart 版本的运行时直接编译成分析程序用 VM 自己的内部结构去读 libapp.so准确度天然高于人工分析。三个最有记忆点的能力自动识别版本、自动编译分析器入口脚本 blutter.py 会读取 libflutter.so 识别 Dart 版本找不到对应版本的 blutter 可执行文件时自动检出 Dart 源码编译每个版本的可执行文件都收在bin目录里对象池转储pp.txt列出对象池里所有 Dart 对象objs.txt是完整的嵌套转储核心逻辑在 DartDumper 里 ✅反汇编 Frida 脚本asm/目录生成带符号的 libapp 反汇编arm64 反汇编器在 Disassembler_arm64FridaWriter 还会生成匹配目标应用的 Frida 脚本模板动态分析可以马上跟上整个流程全自动你完全不用手动对齐 Dart 版本。跑完后的产出结构如下三步跑通 Blutter克隆仓库git clone https://gitcode.com/gh_mirrors/bl/blutter装依赖要求比较新的编译器g≥13 或 clang≥16Debian 上可以用一条 apt 命令装齐 cmake、ninja、capstone 等依赖一行命令python3 blutter.py path/to/app/lib/arm64-v8a out_dir注意先要解压出 APK 里的lib/arm64-v8a目录。第一次跑某个 Dart 版本会慢一些因为它要现场编译 Dart 运行时之后同版本的应用就是秒出结果。适合谁用安全研究人员评估 Flutter 应用安全时把类、函数、字段全看一遍逆向工程师分析第三方 Flutter 应用配合生成的 Frida 脚本 Hook 关键函数学 Flutter 内部机制的人反汇编 对象池转储是理解 AOT 运行时的现成参考丑话说在前面目前的限制仅支持 Android arm64iOS 还在 TODO 里只适配较新的 Dart 版本混淆过的应用函数恢复仍不完整 如果你手头有 Flutter 的 APK拆出 lib 目录跑一次几分钟就能看到完整的分析结果——asm/目录和blutter_frida.js是最值得先打开看的两个文件。【免费下载链接】blutterFlutter Mobile Application Reverse Engineering Tool项目地址: https://gitcode.com/gh_mirrors/bl/blutter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表