如何检测串口嗅探器?

时间:2011-02-23 21:30:12

标签: winapi serial-port

是否可以检测某些串行端口是否被Windows上运行的另一个进程嗅探?

我们有一个应用程序可以接收一些其他人无法读取的敏感数据。因此,在打开串口之前,我们需要检查端口是否受到监控。

我们可以使用CreateFile Windows API函数打开具有独占访问权限的串行端口,但如果监视器在我们的调用之前运行,它可以读取所有通信(它打开具有共享访问权限的串行端口) ,所以我们可以同时打开端口)。为避免这种情况,尝试检查端口是否受到监视并引发异常,警告用户。有可能这样做吗?

2 个答案:

答案 0 :(得分:5)

端口嗅探需要一个过滤器驱动程序,如SysInternals的PortMon实用程序。您采用了错误的方法来保护您的应用程序。当有人可以安装过滤器驱动程序时,攻击者拥有足够的权限来完全禁用您的应用程序并将其替换为他自己制作的其他内容。试图通过您的应用程序检测和防止信息丢失是没有意义的,系统本身必须是安全的。一个串口可能是你必须要失去的第一件事,轻而易举地开发它。

答案 1 :(得分:1)

而不是丢失串口,为什么不是encrypt您的数据。这假设DTE和DCE都是可编程的。