Abc*_*Efg 2 macos network-programming packet-sniffers kernel-extension
我正在尝试通过使用NKE进行KEXT来读取http请求和响应.我注册了一个套接字过滤器,每当我得到数据时我都会使用如下代码打印mbuf:
unsigned char *dataString = mbuf_data(*data);
for (size_t i = 0; i < mbuf_len(*data); i++)
{
printf("%c", dataString[i]);
}
printf("\n-------------\n");
Run Code Online (Sandbox Code Playgroud)
我可以从日志中读取http请求和一些响应数据,但看不到任何HTML内容.我想知道我是不是正确阅读mbuf还是其他问题?
mbufs实际上是内存缓冲区的链接列表,所以如果你只是检查列表的头部,那么这就是你无法看到所有数据的原因.你想做这样的事情:
for (mbuf_t mb = *data; mb; mb = mbuf_next(mb))
{
unsigned char* dataString = mbuf_data(mb);
size_t len = mbuf_len(mb);
for (size_t i = 0; i < len; i++)
{
printf("%c", dataString[i]);
}
}
printf("\n-------------\n");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
442 次 |
| 最近记录: |