V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
diwenx
V2EX  ›  Android

如何获取一个 app 所有使用的端口?

  •  
  •   diwenx · 2022-09-19 13:53:53 +08:00 · 9614 次点击
    这是一个创建于 825 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问一下,如何找到一个 app 所有正在进行中的网络连接以及端口呢?比如该 app 与 8.8.8.8 有保持 tcp 连接 ( 127.0.0.1:34555 <-> 8.8.8.8:53 ), 如何能够获取到该信息呢?

    谢谢!

    9 条回复    2022-09-20 12:17:20 +08:00
    diwenx
        1
    diwenx  
    OP
       2022-09-19 13:56:22 +08:00
    我尝试使用过 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}是错误的途径,也请指出哪个文件包含着该信息,谢谢!
    AoEiuV020CN
        2
    AoEiuV020CN  
       2022-09-19 16:30:47 +08:00
    直觉判断 app 自身没有权限获取这个,
    另外你都进入 /proc/PID 了, 这里面的连接自然都是这个 PID 进程创建的连接了,
    brader
        3
    brader  
       2022-09-19 17:19:06 +08:00
    使用代理实现?你可以使用一些代理软件,要高度定制的话,就自己写一个代理程序,然后手机使用代理上网,这样所有网络行为都会被代理记录下来
    diwenx
        4
    diwenx  
    OP
       2022-09-20 04:36:11 +08:00
    @AoEiuV020CN 有些连接的信息会同时在不同的 /proc/PID/出现,所以才会想去使用 uid
    diwenx
        5
    diwenx  
    OP
       2022-09-20 04:37:09 +08:00
    @brader 你好,我是这样做了后想区分 pcap 里的某些 flow 是由哪个 app 发出来的。请问这有什么办法能实现吗?谢谢
    tramm
        6
    tramm  
       2022-09-20 09:08:20 +08:00
    不知道手机里有没有 lsof
    brader
        7
    brader  
       2022-09-20 09:15:27 +08:00
    @diwenx 这个我平时都是靠观察,多关闭打开几次 APP ,人工观察记录下它总是会请求哪些域名和 IP
    brader
        8
    brader  
       2022-09-20 09:24:54 +08:00
    @diwenx 对了,我以前用过一个安卓版的抓包工具,VNET ,它抓包可以设置只抓某个 APP 的包,你可以试试合用不合用
    meetcw
        9
    meetcw  
       2022-09-20 12:17:20 +08:00
    @tramm 昨天好奇测试了下,安卓的 lsof 好像是个阉割版。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1390 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.