扫雷辅助代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// 扫雷.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#include
#include
int main()
{
//获取扫雷句柄
HWND hWinmine = FindWindow(NULL, L"扫雷");
//线程变量
DWORD dwPID = 0;
//获得扫雷的线程
GetWindowThreadProcessId(hWinmine, &dwPID);
//获得线程句柄
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, dwPID);
//左顶点的第一个雷地址
DWORD dwFirstAddr = 0x01005361;
//需要读取的内存数量
DWORD dwNum = 0x57F - 0x361;
//申请内存建立数组
PBYTE pByte = new BYTE[dwNum];
//读取内存
ReadProcessMemory(hProcess, (LPVOID)dwFirstAddr, pByte, dwNum,NULL);
//开始改地址
BYTE bClear_flag = 0x8E;
BYTE bClear_zero = 0x40;
for (size_t i = 0; i <= dwNum; i++)
{
if (pByte[i] == 0x8F)
{
WriteProcessMemory(hProcess, (LPVOID)(dwFirstAddr + i), &bClear_flag, sizeof(BYTE), NULL);
}
else
if (pByte[i] == 0x0F)
{
WriteProcessMemory(hProcess, (LPVOID)(dwFirstAddr + i), &bClear_zero, sizeof(BYTE), NULL);
}
}
RECT rt = { 0 };
//获取窗口客户区的大小
GetClientRect(hWinmine, &rt);
//指定的窗体更新区域添加一个矩形,然后窗口客户区域的这一部分将被重新绘制
InvalidateRect(hWinmine, &rt, true);
delete pByte;
CloseHandle(hProcess);
return 0;
}