|
查看: 53|回复: 52
|
[相关教程]
从零搭Android动态分析沙箱:Frida+objection+API监控
[复制链接]
|

UID2
贡献9 点
钻石7 个
C币993 个
|
为什么自己搭
公司最近要做 App 自动化合规检测,市面上的沙箱要么贵要么不开放,干脆自己搭了一套。底子是 Frida + objection,外加一层 API 调用日志收集,跑了大半年挺稳的,记下来给后来人。
- 宿主:Ubuntu 22.04 服务器一台,64G 内存 + 一张 P2200 显卡(跑模拟器图形)
- 模拟器:Android Studio AVD,Android 11/13 两个镜像,root 镜像走 Genymotion
- 框架:Frida 17.x server 端 push 到 /data/local/tmp,PC 端 pip 装新版 frida-tools
架构
沙箱分三层:调度层用 Celery 把 APK 队列任务丢给 worker,分析层在模拟器里 hook 一切目标,存储层把 trace 落到 PostgreSQL + Elasticsearch 双写,前端用 Kibana 看 API 调用关系图。整套部署用 docker-compose 起,单机能跑三路并发。
核心 hook
- // 通用敏感 API 调用记录
- Java.perform(function(){
- var CL = Java.use('android.content.ContentResolver');
- CL.query.overload('android.net.Uri','[Ljava.lang.String;','java.lang.String','[Ljava.lang.String;','java.lang.String').implementation = function(uri, p, s, a, so){
- send({api:'ContentResolver.query', uri: uri.toString()});
- return this.query(uri, p, s, a, so);
- };
- var Loc = Java.use('android.location.LocationManager');
- Loc.getLastKnownLocation.implementation = function(p){
- var l = this.getLastKnownLocation(p);
- send({api:'LocationManager.getLastKnownLocation', provider:p, lat:l?l.getLatitude():null});
- return l;
- };
- });
复制代码
几个坑
第一,Android 14 之后 SELinux 对 /data/local/tmp 写权限收紧,frida-server 要改名才能躲过基础检测;第二,objection 默认 hook 表对加固 App 不全,碰到梆梆、爱加密要补 FSExplorer 手动 dump;第三,ES 索引要按 api 字段做 keyword,否则前端聚合查询会 OOM。
 |
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-20 04:03:41
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-20 07:42:40
|
显示全部楼层
|
实战出来的经验和文档里写的完全是两码事,楼主这个很真实。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-20 15:00:39
|
显示全部楼层
|
讲得挺细的,不过我建议加一句免责,这东西容易被拿去做坏事。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-21 01:57:38
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-21 16:33:37
|
显示全部楼层
|
我这边环境是Mac,有些步骤要调整,回头补个差异说明。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-22 10:48:36
|
显示全部楼层
|
这个技术本身是中性工具,关键看用途,楼主的态度挺正的。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-23 08:42:35
|
显示全部楼层
|
想请教一下,你用的这个版本是哪个?我这边跑起来报错。 |
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-24 10:15:34
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|
发表于 2026-2-25 15:27:33
|
显示全部楼层
|
|
|
|
|
|
|
|
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!