病毒可以中断dll函数调用

时间:2014-08-05 20:51:18

标签: windows dll language-agnostic virus

我有一个32位可执行文件,可以调用Dll文件中的函数。安装后,dll将复制到可执行文件和系统目录的同一文件夹中(32位平台上的system32和64位平台上的sysWOW64)。我已经成功测试了这个可执行文件: 一个带有winXP 32位的Pc, 一个Win7 32位的虚拟机, 两台win7 64位的电脑, 一台win8 64位笔记本电脑。

然后客户给了我一台Win 7 64位的笔记本电脑。它被病毒感染(那种病毒会将所有文件夹和文件隐藏在记忆棒中并创建shorcuts)。在这台笔记本电脑上,我的可执行文件无法找到我的dll,尽管它被复制到相应的文件夹中。我的exe显示一条错误消息,上面写着"无法找到mydll.dll"。

病毒是否可能会中断对dll的调用并弄乱我的可执行文件?

2 个答案:

答案 0 :(得分:2)

一般来说,在您知道感染病毒的计算机上进行任何测试都是一个坏主意。当然,这显然是整个系统的混乱。你实际上不能相信系统所说的任何一件事,因为它已被泄露。

所以,这真的与你的DLL是否可以看到无关,bla bla bla ...你应该专注于擦除该机器上的驱动器并重新开始。

当你在它的时候,不要把那个拇指驱动器放到另一台机器上。把它放在Linux机器上并格式化。 (病毒不能那样传播。)

答案 1 :(得分:2)

是的,病毒可以挂钩(“覆盖”)LoadLibrary或GetProcAddress,只返回一个空值。

然后你会收到这条消息。
或者它可以将自己置于dll加载过程(感染)中并由于意外故障而导致失败 它可以删除执行权限 或者它可以覆盖dll的魔术字节,因此系统不再将dll识别为dll ...
或者它可以“覆盖”文件列表API,并始终返回null ...
或者它也可以递归加载/调用自身直到发生堆栈溢出(它也可以通过延时执行此操作,导致看似随机的崩溃) 或......或......或......