C# 使用OLEDB连接到文件时发生计算机恶意软件攻击

C# 使用OLEDB连接到文件时发生计算机恶意软件攻击,c#,oledb,malware,C#,Oledb,Malware,我想知道在尝试连接到带有OlEDB的文件时,该文件是否包含恶意软件,该恶意软件是否可以被激活 即使答案是肯定的或否定的,你能解释一下为什么和/或如何发生这种情况吗 我在本文中阅读了下面的句子,但我不确定在尝试连接OLEDB时,在我的情况下,此连接不会激活隐藏在xls文件下的exe的入口点: 几乎所有病毒都附加到可执行文件,这意味着病毒可能存在于系统上,但在用户运行或打开恶意主机文件或程序之前,病毒不会处于活动状态或无法传播。当主机代码被执行时,病毒代码也被执行 请注意,我在c#中使用OLEDB,

我想知道在尝试连接到带有OlEDB的文件时,该文件是否包含恶意软件,该恶意软件是否可以被激活

即使答案是肯定的或否定的,你能解释一下为什么和/或如何发生这种情况吗

我在本文中阅读了下面的句子,但我不确定在尝试连接OLEDB时,在我的情况下,此连接不会激活隐藏在xls文件下的exe的入口点:

几乎所有病毒都附加到可执行文件,这意味着病毒可能存在于系统上,但在用户运行或打开恶意主机文件或程序之前,病毒不会处于活动状态或无法传播。当主机代码被执行时,病毒代码也被执行

请注意,我在c#中使用OLEDB,并使用System.Data.OLEDB和如下连接字符串:

Provider=Microsoft.ACE.OLEDB.12.0;数据源=c:\myFolder\myExcel2007file.xlsx; 扩展属性=“Excel 12.0 Xml;HDR=YES”

多谢各位

你能解释一下为什么和/或是怎么发生的吗

为此,您必须了解恶意软件的工作原理。就像任何常规程序一样,它必须执行才能造成破坏。您可以将受感染的.exe重命名为.jpg并在照片查看器中打开它,不会发生任何事情


数据源也是如此。如果你只是显示它的内容,什么也不会发生。当然,除非恶意软件的目标是显示系统,而显示系统通常用于删除恶意软件:例如,PDF、照片或其他文档查看器中的已知缓冲区溢出,其中一个精心编制的文件将可执行代码泄漏到宿主程序的堆栈中,因此它可以运行其“安装程序”或通过运行一次进行破坏。

Ok,很好,现在对于像Microsoft这样的OLEDB提供商,在System.Data.OLEDB中使用,您认为在尝试连接到该文件时,提供程序将执行程序?@Samuel为什么你认为OLEDB提供程序会将数据作为代码处理并执行它?我正在了解OLEDB提供程序是如何工作的,以确保它只读取字节序列而不执行它,并感谢专家的帮助。@Samuel我绝对不是这方面的专家主题,但我可以说,任何源中的任何数据都将作为数据呈现,而不是作为代码执行。如果在单元格中键入“Hello World”并查询它,它会执行“Hello World”吗?那么,它为什么要用代码这样做呢?就OLEDB而言,这些都是数据,而不是代码。但也许有人在这方面有更多的经验,可以解释得更清楚无论如何,即使如此,既然攻击者已经可以访问计算机,为什么他们要用病毒而不是程序来替换您的数据源呢?我已经尝试过了,正如您所说,它抛出了一个异常,但我真的很确定,在这种情况下,在未将文件作为程序执行的情况下,提供程序不会尝试除就绪字节以外的任何操作。非常感谢您的时间和帮助。