【发布时间】:2020-07-09 16:32:14
【问题描述】:
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
DWORD GetProcId(const char* procName)
{
DWORD procId = 0;
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnap != INVALID_HANDLE_VALUE)
{
PROCESSENTRY32 procEntry;
procEntry.dwSize = sizeof(procEntry);
if (Process32First(hSnap, &procEntry))
{
do
{
if (!_stricmp(procEntry.szExeFile, procName))
{
procId = procEntry.th32ProcessID;
break;
}
} while (Process32Next(hSnap, &procEntry));
}
}
CloseHandle(hSnap);
return procId;
}
int main()
{
const char* dllPath = "C:\\Users\\%User%\\Desktop\\dll.dll";
const char* procName = "csgo.exe";
DWORD procId = 0;
while (!procId)
{
procId = GetProcId(procName);
Sleep(30);
}
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, procId);
if (hProc && hProc != INVALID_HANDLE_VALUE)
{
void* loc = VirtualAllocEx(hProc, 0, MAX_PATH, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
WriteProcessMemory(hProc, loc, dllPath, strlen(dllPath) + 1, 0);
HANDLE hThread = CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA,
loc, 0, 0);
if (hThread)
{
CloseHandle(hThread);
}
}
if (hProc)
{
CloseHandle(hProc);
}
return 0;
}
弹出的2个错误:
第一个:
错误(活动)“WCHAR *”类型的 E0167 参数与类型的参数不兼容 "常量字符
第二个:
错误 C2664 'int _stricmp(const char *,const char *)': 无法将参数 1 从 'WCHAR [260]' 到 'const char *'
我是否缺少内含物?
基本上它不会正确运行,这是我得到的唯一 2 个错误,我修复了其他错误。我似乎无法弄清楚这一点。我试过删除一些东西,添加一些东西,但我对包含物知之甚少。如果知道夹杂物的人看到缺少的夹杂物,请告诉我。我在这方面尝试了很多东西。
【问题讨论】:
标签: c++