【发布时间】:2014-06-12 02:45:19
【问题描述】:
我正在尝试编写端口扫描器,我设法使用套接字获取打开的端口。
我的问题是如何知道哪些应用程序正在侦听开放端口。
【问题讨论】:
-
你在写应用吗?应用应该确定运行它的设备的端口还是其他设备的端口?
标签: android port-scanning
我正在尝试编写端口扫描器,我设法使用套接字获取打开的端口。
我的问题是如何知道哪些应用程序正在侦听开放端口。
【问题讨论】:
标签: android port-scanning
Android 基于 Linux 内核,因此您可以使用在 Linux 下工作的相同方法来执行此操作。有关如何执行此操作的说明,请参阅 https://stackoverflow.com/a/2359643/441899。此外,您需要从 Linux 进程中确定在该进程中运行的应用程序是什么(参见Android - How to get the processName or packageName by using PID?)。请注意,您的应用必须以 root 身份运行才能访问 /proc 中的文件,以便查找此信息。
【讨论】:
这将为您提供有关 android 开放端口的列表。例如
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 0100007F:13AD 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 3336108 1 0000000000000000 100 0 0 10 0
1: 0100007F:1F90 00000000:0000 0A 00000000:00000000 00:00000000 00000000 10252 0 3579923 1 0000000000000000 100 0 0 10 0
2: 6400A8C0:A90E 6800A8C0:1F90 04 00000001:00000000 00:00000000 00000005 0 0 0 1 0000000000000000 326 4 29 1 5
3: 6400A8C0:A91E 6800A8C0:1F90 04 00000001:00000000 00:00000000 00000005 0 0 0 1 0000000000000000 326 4 29 1 5
4: 6400A8C0:84F2 66DFC2DC:01BB 09 00000001:00000001 00:00000000 00000005 0 0 0 1 0000000000000000 665 4 24 1 5
所以我们知道 uid =10252 是监听端口 1F90(即 8080)的 APP
com.target.app 10252 0 /data/user/0/com.target.app default:targetSdkVersion=29 3002,3003 0 1
【讨论】: