猫大人 发表于 2023-12-29 14:26

分享一个使用MAC调试iOS APP的小技巧

本帖最后由 猫大人 于 2023-12-29 14:30 编辑

由于隐私合规的问题,需要对介入的第三方的SDK进行审计,防止这些SDK获取一些不该获取信息,但是常规的检测手段有限,不能监控到SDK利用的所有手段.
众所周知,在使用苹果芯片的MAC上面可以直接调试iOS APP,unix上面有各种监听进程的工具,这时候我们可以借助 unix 上面的工具实现我们的目的.
比如说 dtrace 可以监听各种系统调用

dtrace 的名字暗示了自己的脚本,dtrace 使用了 D 语言作为脚本语言,简单介绍一下 dtrace 用法。
如果我们要监听一个进程所有的 syscall 调用,首先,我们需要创建一个叫 `syscall.d` 文件
```
syscall::read:entry
{
      printf ("%s called read, asking for %d bytes\n", execname, arg2);
}
```
其中 execname 代表了进程名字
终端运行 `sudo dtrace -s syscall.d` 脚本,这样子不管SDK是用调用函数还是调用syscall,或者调用svc,甚至隐式调用svc都可以被 dtrace监听到.也可以在脚本中加入 ustack(); 打印调用堆栈,方便向上查找调用点,扩展功能大家自行百度dtrace的用法.


在 unix 还有一个好用的工具 opensnoop,opensnoop 可以监视特定进程的文件打开操作,也是基于dtrace封装实现的
基本用法 `sudo opensnoop -n <process_name>` 其中 process_name 为需要监听的进程名字

比如我随便监听一个APP


可以看到APP对这些文件进行读写操作,用来检测越狱,其中包括常见的越狱文件检测,frida检测,新机APP检测
本文仅做抛转引玉,更多操作大家可以自行扩展



wosn 发表于 2023-12-30 16:57

感谢分享

APWN 发表于 2023-12-30 21:49

先收藏,感觉不久有可能用得上,谢谢楼主

xixicoco 发表于 2023-12-31 00:21

很好的技巧,就是比较小众的方法

pdc9911 发表于 2024-1-1 08:09

挺实用的,感谢楼主

bubu5617 发表于 2024-1-2 08:07

感谢楼主

sdieedu 发表于 2024-1-2 12:13

还能干啥?破解

CQGaxm 发表于 2024-1-3 06:50

有可能用得上,谢谢楼主

spawn_fly 发表于 2024-1-4 09:14

感谢分享!!!!

kylewu 发表于 2024-1-8 10:23

挺实用的,感谢楼主
页: [1]
查看完整版本: 分享一个使用MAC调试iOS APP的小技巧