如何检测Windows应用程序(.exe)是否正在向外部发送数据?

问题描述 投票:0回答:1

我正在使用用 Python 编写的 Windows 应用程序 (.exe) 来操作文件夹中的文件。我怀疑此应用程序可能在未经许可的情况下将我的文件发送到远程服务器。如何验证此应用程序是否正在建立不需要的网络连接?

具体:

  1. 有没有一种方法可以检查该应用程序是否连接到互联网,而无需对源代码进行逆向工程?
  2. 除了监控网络流量之外,还有其他明确的方法来检测互联网访问情况,类似于Android声明互联网权限(android.permission.INTERNET)吗?

应用程序应该处于离线状态。我正在寻找简单的方法来确定它是否正在访问互联网,而无需深入研究复杂的分析技术。

python security networking permissions
1个回答
0
投票

嗯,我知道有两种方法可以监视程序的网络请求(在 Windows 上)。第一种方法是使用 Sysinternals 套件的 Process Monitor。打开它后,每次应用程序进行系统调用时,窗口中都会出现一个条目,其中包含事件名称和一些详细信息。如果您选择一个条目并打开其“属性”窗口,您可以获得有关它的更多详细信息。

因此,如果您设置一个过滤器以仅显示目标可执行文件中的网络事件,您应该能够看到实时发出网络请求的程序。下面是我捕获浏览器网络事件的屏幕截图作为示例: screenshot of ProcessMonitor

另一种方法是打开具有管理权限的命令提示符并使用命令

netstat -bn 1
。这将显示运行命令时所有打开的套接字连接的列表,并且它会连续暂停一秒钟,然后再次输出列表,直到您按 Ctrl-C 退出。

-b
选项使其显示哪个二进制文件正在建立每个连接,而
-n
选项使其以数字方式显示IP地址,而不尝试将它们解析为域名。并且
1
使其每秒重新显示一次,而不是显示一次并退出。如果您愿意,您可以删除
-n
,但这会使速度变得非常慢。您可以查看
netstat /?
了解更多选项。

© www.soinside.com 2019 - 2024. All rights reserved.