如何获取试图访问互联网的exe的名称?

时间:2013-07-10 13:26:45

标签: delphi winapi network-programming firewall delphi-2009

我正在开发一个能够确定使用互联网的应用程序的应用程序。现在我的问题是我想在成功建立连接之前知道进程名称,就像防火墙一样。

我正在使用Delphi2009。所以该技术的建议值得赞赏。

1 个答案:

答案 0 :(得分:1)

查看Winsock Layered Service Providers以监控流量。我相信LSP是加载到每个进程的DLL,所以你应该能够在加载DLL时调用GetModuleFileName(NULL)来发现EXE名称。

上面链接的维基百科文章分享了我最强烈关注的问题:

  

LSP的一个主要常见问题是如果要删除它们   或未注册不正确或如果LSP有错误,它将导致   注册表中的Winsock目录的损坏,以及整个   TCP / IP堆栈将中断,计算机无法再访问   网络

因此,如果您不熟悉Windows编程和/或在编写这些类型的过滤器驱动器时没有采取适当的预防措施,请谨慎操作。否则,程序中的错误很容易搞砸用户的机器。