代码之家  ›  专栏  ›  技术社区  ›  Duong Duc Nguyen

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

  •  1
  • Duong Duc Nguyen  · 技术社区  · 10 月前

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

    明确地:

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

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

    1 回复  |  直到 10 月前
        1
  •  0
  •   I Like Python    10 月前

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

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

    另一种方法是打开具有管理权限的命令提示符并使用以下命令 netstat -bn 1 。这将显示运行命令时所有打开的套接字连接的列表,它将连续暂停一秒钟,然后再次输出列表,直到您按Ctrl-C退出。

    这个 -b 选项使其显示每个连接的二进制文件,以及 -n 该选项使其以数字形式显示IP地址,而不尝试将其解析为域名。还有 1 使其每秒重新显示一次,而不是显示一次后退出。您可以删除 n 如果你愿意,但这会让它变得非常慢。你可以看到 netstat /? 更多选择。