【问题标题】:How to Get uid from packet - android如何从数据包中获取 uid - android
【发布时间】:2015-05-09 22:05:52
【问题描述】:

我正在 android 中开发一个防火墙应用程序,我需要根据 uid 识别应用程序。我创建了一个 vpn 服务,并且能够捕获数据包并获取目标 IP 地址。

有什么方法可以从数据包或数据报套接字中获取应用程序的 uid。

【问题讨论】:

  • 直接访问 /proc/ 文件不再适用于 android-Q Refer

标签: android network-programming vpn packet


【解决方案1】:

您必须为此编写一些本机代码才能在内核级别进行通信。

【讨论】:

    【解决方案2】:

    解析数据包,对于 TCP/UDP,可以检索 (local_ip, local_port, remote_ip, remote_port) 元组。然后读取解析/proc/net/tcp或/proc/net/udp,里面有uid字段。

    这是一个所有者 uid 为 10117 的环回套接字:

    sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
    7: 0100007F:8FC5 0100007F:0438 01 00000000:00000000 00:00000000 00000000 10117        0 242607 1 00000000 21 4 26 10 -1
    

    【讨论】:

    猜你喜欢
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2016-09-30
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    相关资源
    最近更新 更多