Socket send断点

BSD 的socket的是整个iOS网络的最底层,于是我就想在send上下断点,经过定位我发现send函数是在libSystem.B.dylib中,可是我用ida打开libSystem.B.dylib后发现里面没有send函数,这就导致我无法找到send函数的地址,这样我就无法通过基地址+函数地址的方法下断点了,请教下老大为何libSystem.B.dylib里没有send函数呢?另外如何快速的给某个应用下send断点呢(类似windows下的OD的bp send命令?)。

怎么定位的?

在ida里双击_socket函数进入看到有个_imp_socket,再点击_imp_socket进入,看到他得头部有个import /usr/lib/libSystem.B.dylib,难道不是这样看函数定义在那个lib里啊,请狗剩指点迷津。

这说明了_socket函数来源于libSystem.B.dylib,跟send函数没有直接关系啊

上面说错了,其实我是_socket和_send函数的实现都没找到,那就将错就错吧,_socket函数是在libSystem.B.dylib里,可我找不到_socket的实现代码啊,就像找不到send函数的实现代码一下。那我如何给send和socket下断点呢。

我看了下,没在这个库里找到socket函数啊

狗剩,那这个函数是在哪里实现的呢,遇到这种问题我怎么找呢?指点下迷津啊。

其实我是想找send函数,在send函数上下断点,然后再看调用堆栈找到app发起网络的地方。现在send函数的实现地址都找不到啊。

我也遇到相同的问题,分析一个函数跟踪到这一步
_mach _msg函数

在Imports表中找到:

但是在iphone的/sur/ib里找不到libSystem.B.dylib,

在cache导出的文件里找到了libSystem.B.dylib,

但是cache导出的libSystem.B.dylib里并没有_mach_msg函数。

那请问_mach_msg函数的代码该去哪里寻找呢?

send 在libsystem_kernel.dylib中

你是通过什么办法知道send 在libsystem_kernel.dylib中的呢?

_ mach _ msg函数也在libsystem_kernel.dylib中。

我最终是用mac的查找函数找到的,后来发现没有必要,因为send函数是系统导出的,直接hook打印堆栈就能看到了