ARTICLE · 1049338
安卓、iOS 魔改 Frida 免费分享,附内核隐藏模块和检测 App
简短介绍
把课程中使用的安卓、iOS 魔改 Frida,连同安卓内核隐藏与页重定向模块、两端环境检测 App,一起免费分享。可以直接拿来研究 Frida 特征和检测方式。
正文
安卓和 iOS 的 Frida 都做了魔改,产物叫 Muida。我还写了安卓内核隐藏模块,以及两个平台的环境检测 App。这次把它们放进同一个文件包,成品已经编译好,省去大家先搭环境编译的步骤。
先看能拿到什么。
Frida 本身改了什么
应用能从好几个位置找到 Frida。文件和线程有名字,内存里有字符串,Frida 自己也会在一些系统函数上装 Hook。Muida 的修改就落在这些地方。
安卓这边,处理了 Server、Agent、Helper 和 Gadget 的命名,还清理了 gum-js-loop 等线程特征、runtime 路径与部分生成符号。frida:rpc 的明文字面量改成运行时还原,通信时仍保留原协议,电脑端可以继续使用匹配版本的 Frida 客户端。等等。。。
iOS 这边也处理了内部标识、Agent 和安装布局。等等。。。
这套产物基于 Frida 17.16.1。
内核隐藏
kernel-hide.kpm 把处理位置放到了安卓内核,涉及 maps 输出、线程名称、status、特定文件访问,以及部分网络连接和内存读取路径。
这里有个值得研究的区别。应用通过普通 libc 函数读 maps,和绕过这个函数、直接发起系统调用,经过的用户态代码不同。只改一个 libc 入口时,两种读法可能给出不同结果;内核模块则可以继续处理它们共同经过的内核输出路径。
检测 App
安卓 App 提供 8 项检测,默认端口、maps、线程名、内存字符串、inline hook、syscall maps、动态 SVC maps,以及 libart.so 的 PrettyMethod 相关检测。可以一键运行,也能单独点某项,把日志复制出来。
iOS App 分为越狱环境检测和 Frida 注入检测。越狱部分区分有根、无根路径;Frida 部分检查文件与控制端点、Agent 内存特征、线程、系统函数入口,以及未注册的可执行 Mach-O。Mach-O 就是 iOS 常用的可执行文件和动态库格式。
先装检测 App,再用 Muida 注入说明里的最小脚本,就能开始观察这些项目。Server 和 Gadget 的接入方式、KPM 的加载与卸载命令都随包提供。
KPM 需要兼容的安卓 KernelPatch/APatch 环境,iOS App 需要支持 TrollStore 的设备。
免费领取
扫码添加好友,对我私聊发送 "魔改frida"即可。
一起探讨逆向技术、交流行业经验、共享学习资料,还能加入逆向技术同好社群。
