first commit
This commit is contained in:
commit
9b255c0234
26 files changed
+281
No files matched your search
@@ -0,0 +1,72 @@
|
||||
// WeChatHook.cpp : This file contains the 'main' function. Program execution begins and ends there.
|
||||
//
|
||||
|
||||
#include <iostream>
|
||||
#include <Windows.h>
|
||||
#include <TlHelp32.h>
|
||||
#define WeChatProcessName "WeChat.exe"
|
||||
|
||||
VOID InjectDll();
|
||||
DWORD ProcessNameFindPID(LPCSTR ProcessName);
|
||||
|
||||
int main()
|
||||
{
|
||||
std::cout << "Hello World!\n";
|
||||
}
|
||||
|
||||
DWORD ProcessNameFindPID(LPCSTR ProcessName)
|
||||
{
|
||||
HANDLE ProcesllAll = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
||||
PROCESSENTRY32 processInfo = {0};
|
||||
processInfo.dwSize = sizeof(PROCESSENTRY32);
|
||||
|
||||
do
|
||||
{
|
||||
if (strcmp(ProcessName, processInfo.szExeFile) == 0)
|
||||
{
|
||||
return processInfo.th32ProcessID;
|
||||
}
|
||||
} while (Process32Next(ProcesllAll, &processInfo));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
VOID InjectDll()
|
||||
{
|
||||
CHAR pathStr[0x100] = {"C://"};
|
||||
|
||||
DWORD PID = ProcessNameFindPID(WeChatProcessName);
|
||||
|
||||
if (PID == 0)
|
||||
{
|
||||
printf("Can't find the process\n");
|
||||
return;
|
||||
}
|
||||
|
||||
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
|
||||
if (hProcess == NULL)
|
||||
{
|
||||
printf("Can't open the process\n");
|
||||
return;
|
||||
}
|
||||
|
||||
LPVOID pDllPath = VirtualAllocEx(hProcess, NULL, sizeof(pathStr), MEM_COMMIT, PAGE_READWRITE);
|
||||
if (pDllPath == NULL)
|
||||
{
|
||||
printf("Can't allocate memory\n");
|
||||
return;
|
||||
}
|
||||
|
||||
const char *pathStr = "Kernel32.dll"; // your ASCII string
|
||||
|
||||
HMODULE k32 = GetModuleHandle(pathStr);
|
||||
LPVOID loadAdd = GetProcAddress(k32, "LoadLibraryW");
|
||||
|
||||
HANDLE exec = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)loadAdd, pDllPath, 0, NULL);
|
||||
|
||||
if (exec == NULL)
|
||||
{
|
||||
printf("Can't create remote thread\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user