请问一下,如何找到一个 app 所有正在进行中的网络连接以及端口呢?比如该 app 与 8.8.8.8 有保持 tcp 连接 ( 127.0.0.1:34555 <-> 8.8.8.8:53 ), 如何能够获取到该信息呢?
谢谢!
1
diwenx OP 我尝试使用过 adb shell cat /proc/PID/net/{tcp/udp},类似于这种:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 37: 03EC1BAC:96A9 080D3C17:01BB 08 00000000:00000000 00:00000000 00000000 10005 0 543533 1 0000000000000000 22 3 26 10 1400 38: 03EC1BAC:F6C9 6276000A:0035 06 00000000:00000000 03:0000033A 00000000 0 0 0 3 0000000000000000 39: 03EC1BAC:0DD3 6276000A:0035 06 00000000:00000000 03:0000048D 00000000 0 0 0 3 0000000000000000 但发现虽然有些条目的 uid 可以知道是是哪个进程创建的 (比如#37 的 10005 ),但有些条目的 uid 为 0 (比如#38 ,#39 ),对于 uid 为 0 的条目,如何知道是哪个进程创建的该连接呢? 如果 cat /proc/PID/net/{tcp/udp}是错误的途径,也请指出哪个文件包含着该信息,谢谢! |
2
AoEiuV020CN 2022-09-19 16:30:47 +08:00
直觉判断 app 自身没有权限获取这个,
另外你都进入 /proc/PID 了, 这里面的连接自然都是这个 PID 进程创建的连接了, |
3
brader 2022-09-19 17:19:06 +08:00
使用代理实现?你可以使用一些代理软件,要高度定制的话,就自己写一个代理程序,然后手机使用代理上网,这样所有网络行为都会被代理记录下来
|
4
diwenx OP @AoEiuV020CN 有些连接的信息会同时在不同的 /proc/PID/出现,所以才会想去使用 uid
|
5
diwenx OP @brader 你好,我是这样做了后想区分 pcap 里的某些 flow 是由哪个 app 发出来的。请问这有什么办法能实现吗?谢谢
|
6
tramm 2022-09-20 09:08:20 +08:00
不知道手机里有没有 lsof
|