DLL注入器的问题 我最近一直在学习C++,我正处于能够建立足够的程序的阶段。
目前,我正试图将一个DLL注入到我选择的进程中,我遇到了麻烦,因为当它注入时,它工作得很好,但当我没有DLL时,它仍然像被注入一样工作 请帮忙 我的消息来源:DLL注入器的问题 我最近一直在学习C++,我正处于能够建立足够的程序的阶段。,c++,windows,dll,C++,Windows,Dll,目前,我正试图将一个DLL注入到我选择的进程中,我遇到了麻烦,因为当它注入时,它工作得很好,但当我没有DLL时,它仍然像被注入一样工作 请帮忙 我的消息来源: #include <iostream> #include <Windows.h> #include <TlHelp32.h> using namespace std; bool InjectDLL(DWORD ProcessID); char FileToInject[] = "DLL.dll";
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
using namespace std;
bool InjectDLL(DWORD ProcessID);
char FileToInject[] = "DLL.dll";
char ProcessName[] = "ac_client.exe";
typedef HINSTANCE (*fpLoadLibrary)(char*);
int main()
{
DWORD processId = NULL;
PROCESSENTRY32 pe32 = {sizeof(PROCESSENTRY32)};
HANDLE hProcSnap;
while(!processId)
{
system("CLS");
cout << "|Coded by Proton|" << endl;
cout << "Waiting for AssaultCube ..." << endl;
hProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(Process32First(hProcSnap, &pe32))
{
do
{
if(!strcmp(pe32.szExeFile, ProcessName))
{
processId = pe32.th32ProcessID;
break;
}
}
while(Process32Next(hProcSnap, &pe32));
}
Sleep(1000);
}
while(!InjectDLL(processId))
{
system("CLS");
cout << "DLL failed to inject." << endl;
Sleep(1000);
}
cout << "DLL Injected." << endl << endl;
cout << "Closing Injector in 5 seconds ..." << endl;
CloseHandle(hProcSnap);
Sleep(5000);
return 0;
}
bool InjectDLL(DWORD ProcessID)
{
HANDLE hProc;
LPVOID paramAddr;
HINSTANCE hDll = LoadLibrary("KERNEL32");
fpLoadLibrary LoadLibraryAddr = (fpLoadLibrary)GetProcAddress(hDll, "LoadLibraryA");
hProc = OpenProcess (PROCESS_ALL_ACCESS, false, ProcessID);
char dllPath[250] = "C:\\";
strcat(dllPath, FileToInject);
paramAddr = VirtualAllocEx(hProc, 0, strlen(dllPath)+1, MEM_COMMIT, PAGE_READWRITE);
bool memoryWritten = WriteProcessMemory(hProc, paramAddr, dllPath, strlen(dllPath)+1, NULL);
CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)LoadLibraryAddr, paramAddr, 0, 0);
CloseHandle(hProc);
return memoryWritten;
}
#包括
#包括
#包括
使用名称空间std;
bool-InjectDLL(dwordprocessid);
char FileToInject[]=“DLL.DLL”;
char ProcessName[]=“ac_client.exe”;
typedef HINSTANCE(*fpLoadLibrary)(字符*);
int main()
{
DWORD processId=NULL;
PROCESSENTRY32 pe32={sizeof(PROCESSENTRY32)};
处理HPROCSAP;
而(!processId)
{
系统(“CLS”);
不能忽略CreateRemoteThread
中的返回值
使用线程句柄检查它是否保持运行(WaitForSingleObject
超时),如果它退出,请检查其返回代码。看起来与另一个问题中的代码惊人地相似:我认为这有帮助,但我遇到了错误,你能在代码之后发布它执行此操作的样子吗?@JoshNazarino Nope!没有人来做你的代码更正保姆,想想你自己吧。