让我们考虑一下这种情况:
- 有些从互联网上下载的 X 软件有一个 .exe 文件和几个 .dll 文件。
- 使用 Windows 防火墙阻止该 .exe 文件访问 Internet。
- 该程序的一个.dll文件已被恶意软件感染。
通过阻止 .exe 文件,它从 .dll 文件调用的可执行代码是否也被阻止了?还是我应该手动阻止每个看起来有可执行内容的文件?更一般地说,在这种情况下,Windows 防火墙如何工作?
谢谢!
答案1
当 Windows 运行可执行文件时,它可能会导入一些 .DLL。它稍后还可能会导入 .DLL。
当您阻止可执行文件时,您会阻止它导入任何通常会导入的 .DLL。
但是,您不能阻止其他应用程序导入这些 .DLL。
一些应用程序带有自己的 .DLL,一些安装了共享的 .DLL,并且 Windows 拥有大量的 .DLL,它可以作为 Windows API 的一部分提供给任何 .exe。
此外,.DLL 实际上可以是可执行文件,并且可以rundll32.exe
通过 Windows API 的某些其他机制进行调用。
如果您将 .exe 列入白名单,那么您也应该将 .DLL 列入白名单。
答案2
这些库是共享的,因为它们是动态链接的。如果是这样的话,阻止应用程序实际上可能会导致系统其他部分出现问题。您只是阻止可执行文件本身运行,从而阻止来自该向量点的任何恶意代码。
答案3
是的!
.dll 文件只是一组需要由 .exe 调用才能运行的函数。
答案4
我使用一个名为“文件夹防火墙阻止程序”的程序,它可以阻止 dll 和 exe。您可以在默认的 Windows 防火墙高级安全窗口中调出它所阻止的内容,阻止入站和出站,您可以随时删除您不太关心的规则/dll/exe。