Option Explicit
Private Sub InjectDLL(ByVal processId As Long, ByVal dllpath As String)
Dim hProcess As Long, hThread As Long, lpAddress As Long, dwBytesWritten As Long, hKernel32 As Long, LoadLibraryAddress As Long
hProcess = OpenProcess(&H1F0FFF, False, processId)
lpAddress = VirtualAllocEx(hProcess, 0, Len(dllpath) + 1, &H1000, &H4)
WriteProcessMemory hProcess, lpAddress, dllpath, Len(dllpath) + 1, dwBytesWritten
' 获取目标进程中的 Kernel32.dll 模块句柄
hKernel32 = GetModuleHandleA("Kernel32")
'获取函数地址
LoadLibraryAddress = GetProcAddress(hKernel32, "LoadLibraryA")
' 创建远程线程来加载 DLL
hThread = CreateRemoteThread(hProcess, 0, 0, LoadLibraryAddress, lpAddress, 0, 0)
If hThread = 0 Then
MsgBox "无法创建远程线程"
VirtualFreeEx hProcess, lpAddress, 0, &H8000
CloseHandle (hPr