#include<windows.h>
#include<stdio.h>
DWORD __stdcall AutoHP(LPVOID lparam)
{
DWORD* hp = (DWORD*)0X4D7ED8;
while (TRUE)
{
if (*hp <= 100)
{
_asm
{
push 0x52
mov ecx, 0x537400
mov eax, 0x004252E0
call eax
}
}
}
return 0;
}
int main()
{
HWND hwnd = FindWindowA(NULL, "Sword2 Window");
if (hwnd == NULL)
{
printf("游戏未运行\n");
return 0;
}
DWORD piid = 0;
GetWindowThreadProcessId(hwnd, &piid);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, piid);
LPVOID lpAllocAddr = VirtualAllocEx(hProcess, 0, 0x100, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
DWORD realWrite = 0;
///< 将辅助代码拷贝到目标进程的虚拟地址空间
WriteProcessMemory(hProcess, lpAllocAddr, AutoHP, 0x100, &realWrite);
///< 创建一个远程线程执行辅助代码函数
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)lpAllocAddr, 0, 0, 0);
system("pause");
return 0;
}
代码有bug,能自动嗑药,但是血未增加