#include <Windows.h>
int main()
{
HWND hWnd = FindWindow(NULL, L"扫雷");
DWORD dwPid = 0;
GetWindowThreadProcessId(hWnd, &dwPid);
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, false, dwPid);
DWORD dwBaseAddr = 0x01005330;
DWORD dwNum = 0, dwWidth = 0, dwHeight = 0, dwSize = 0;
// 读取宽度 高度
ReadProcessMemory(handle, (LPVOID)dwBaseAddr, &dwNum, sizeof(DWORD), &dwSize);
ReadProcessMemory(handle, (LPVOID)(dwBaseAddr + 0x4), &dwWidth, sizeof(DWORD), &dwSize);
ReadProcessMemory(handle, (LPVOID)(dwBaseAddr + 0x8), &dwHeight, sizeof(DWORD), &dwSize);
// 读取内部信息
// 长度 = 棋盘 + 空白边 + 四角
DWORD dwReadSize = dwWidth*dwHeight + dwHeight*2 + dwWidth*2 + 4;
PBYTE pByte = new BYTE(dwReadSize);
ReadProcessMemory(handle, (LPVOID)(dwBaseAddr + 0x10), pByte, dwReadSize, &dwSize);
BYTE bClear = 0x8E;
for (size_t i = 0; i < dwReadSize; i++)
{
if (pByte[i] == 0x8F) {
WriteProcessMemory(handle, (LPVOID)(dwBaseAddr + 0x10 + i), &bClear, sizeof(BYTE), &dwSize);
}
}
// 更新窗口
RECT rt = { 0 };
GetClientRect(hWnd, &rt);
InvalidateRect(hWnd, &rt, true);
return 0;
}
扫雷外挂
最新推荐文章于 2020-10-30 21:01:24 发布