大多数使用 Microsoft 开发人员工具创建的应用程序都需要先安装某种运行时。然而,大多数病毒从不需要任何类型的运行时来工作。此外,他们似乎也使用了没有 lib 文件等的未记录的核心/内核 API。
那么大多数病毒/病毒作者使用什么运行时/应用程序呢?
如果运行时是静态链接的(而不是动态链接),那么 EXE 将是自包含的,您将不需要运行时 DLL。但是,实际上,如果您的代码可以在不调用标准库函数的情况下完成所有操作,那么您甚至根本不需要运行时库。
至于 Windows API,在许多情况下,您也不需要导入库——特别是如果您通过GetProcAddress
. 一些开发工具甚至可以让您直接链接到 DLL(并且会为您生成方法存根或其他任何东西)。MS 试图确保记录的 API 调用的名称在版本之间保持相同。未记录的功能,不是那么多......但是,当您故意编写恶意软件时,兼容性通常不是最重要的问题。