问题描述
我正在制造DLL注射器。一个非常简单的应用程序:控制台应用程序,输入DLL,输入过程。但我在第26行遇到错误:
LoadLibAddy = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA");
有人可以帮我吗?
#include<Windows.h> //DWORD
#include <iostream>
#include <string>
#include <psapi.h> //EnumProcessModules
#include <VersionHelpers.h>
#include <atlstr.h> // CString
#define CREATE_THREAD_ACCESS (PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ)
BOOL InjectDLL(DWORD ProcessID)
{
LPCSTR DLL_PATH = "dll file here";
LPVOID LoadLibAddy,RemoteString;
if (!ProcessID)
return false;
HANDLE Proc = OpenProcess(CREATE_THREAD_ACCESS,FALSE,ProcessID);
if (!Proc)
{
std::cout << "OpenProcess() failed: " << GetLastError() << std::endl;
return false;
}
LoadLibAddy = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA");
RemoteString = (LPVOID)VirtualAllocEx(Proc,NULL,strlen(DLL_PATH) + 1,MEM_COMMIT,PAGE_READWRITE);
WriteProcessMemory(Proc,RemoteString,(LPVOID)DLL_PATH,strlen(DLL_PATH)+1,NULL);
CreateRemoteThread(Proc,(LPTHREAD_START_ROUTINE)LoadLibAddy,NULL);
CloseHandle(Proc);
return true;
...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)