VBκɱMoveFileEx÷çSPA
在VBScript中,可以利用内置的`WScript.Shell`对象以及Windows API函数来实现程序的自启动。标题提到的“VB自启动过任何杀软”指的是通过编程方式绕过安全软件(如360)的检测,使得程序能够在系统启动时自动运行,且不被安全软件拦截。描述中提到了文章会展示如何实现这一过程。
在提供的代码片段中,主要涉及了两个API函数:`MoveFile`和`MoveFileEx`,它们都来自`kernel32.dll`库。这两个函数用于移动文件,但`MoveFileEx`提供了更多的选项。
1. `MoveFile`函数:
- 函数原型:`Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String)`
- 这个函数简单地将一个文件从源路径移动到目标路径。如果目标文件已存在,它会被覆盖。然而,在VBScript中直接使用这个函数可能无法绕过杀毒软件的监控。
2. `MoveFileEx`函数:
- 函数原型:`Private Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long)`
- 这个函数增加了额外的标志参数`dwFlags`,其中`MOVEFILE_DELAY_UNTIL_REBOOT`(值为`&H4`)是一个重要的选项。当设置此标志时,文件移动操作会在下次系统重启时执行,这样可以避开实时监控的安全软件。
代码中的`Sub main()`是自启动流程的核心部分:
- 首先,通过`WScript.Shell`对象的`RegRead`方法获取了“Common Startup”(公共启动)路径(通常用来存放自启动程序的快捷方式)。
- 接着,将当前程序(假设为`.exe`文件)复制到`C:\windows\svchost.exe`,这是一个系统关键进程的名称,这样做的目的是利用其隐蔽性。
- 最后,使用`MoveFileEx`函数将`C:\windows\svchost.exe`移动到“Common Startup”路径下,并设置`MOVEFILE_DELAY_UNTIL_REBOOT`标志,确保在下次启动时执行。
这样的操作方式可能导致恶意软件或病毒的行为,因为它可以绕过某些安全软件的实时防护。因此,对于普通用户来说,了解这种技术可以帮助提高系统的安全意识,而对于开发者来说,应当谨慎使用类似的技术,以免误用。在系统维护和软件开发过程中,遵守合法和安全的编程原则至关重要。