本次以win98扫雷"高级"场为例子的基础篇代码,稍后会写出所有场通用篇
扫雷"高级"场是指

下面是OD和win98扫雷下载
链接:http://pan.baidu.com/s/1gfA10K7 密码:eiqp
立即学习“C++免费学习笔记(深入)”;
下面开始演示本次实验:
1.打开OD后,把winmine.exe拖入OD
2.在WM_LBUTTONUP上设置断点
3.然后单步步过到此位置

在注释为消息处理(地址为01001FE1)跟随
4.跟随后我们在此处可以找到棋盘数据

提取当前位置的数据如下:

我们就知道地址010055330前双字为0x63(十进制为99)这表示雷数,后面双字分别是宽度和高度,0x10表示棋盘的边,0x8F表示雷
所以我们只要检索此段内存0x8F,并且把他改成0x8E(标志为红旗),就成功了
如下所示

下面是C/C++代码
#include <windows.h>
#include <stdio.h>
int main()
{
HWND hWinmine = FindWindow(NULL, L"扫雷");
DWORD dwPID = 0;
GetWindowThreadProcessId(hWinmine, &dwPID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, dwPID);
//基础地址、雷数、宽度、高度
DWORD dwBaseAddr = 0x01005330;
DWORD dwNum = 0, dwWidth = 0, dwHight = 0, dwSize = 0;
//读取内存信息
//读进程的内存空间数据
//参数:第1个参数: HANDLE hProcess进程句柄。
//第2个参数: LPCVOID lpBaseAddress基址指针。
//第3个参数: LPVOID lpBuffer接收数据缓冲区指针。
//第4个参数: DWORD nSize接收数据缓冲区缓冲区大小。
//第5个参数: LPDWORD lpNumberOfBytesRead读入数据量大小指针。
返回值: 成功:TRUE
失败:FALSE
ReadProcessMemory(hProcess, (LPVOID)dwBaseAddr, &dwNum, sizeof(DWORD), &dwSize);
ReadProcessMemory(hProcess, (LPVOID)(dwBaseAddr +0x4), &dwWidth, sizeof(DWORD), &dwSize);
ReadProcessMemory(hProcess, (LPVOID)(dwBaseAddr + 0x8), &dwHight, sizeof(DWORD), &dwSize);
//棋盘总大小=棋盘+空白边+4角
DWORD dwReadsize = dwWidth*dwHight + dwHight * 2 + dwWidth * 2 + 4;
PBYTE pByte = new BYTE[dwReadsize];
ReadProcessMemory(hProcess, (LPVOID)(dwBaseAddr + 0x16), pByte, dwReadsize, &dwSize);
BYTE bClear = 0x8E;
for (size_t i = 0; i < dwReadsize; i++)
{
if (pByte[i] == 0x8F)
{
WriteProcessMemory(hProcess, (LPVOID)(dwBaseAddr + 0x16 + i), &bClear, sizeof(BYTE), &dwSize);
}
}
//函数功能: 得到窗体客户区的大小。
//第1个参数: HWND hWnd窗体句柄。
//第2个参数: LPRECT lpRect客户区RECT结构的指针。
RECT rt = { 0 };
GetClientRect(hWinmine, &rt);
InvalidateRect(hWinmine, &rt, true);//这个函数屏蔽一个窗口客户区的全部或部分区域。这会导致窗口在事件期间部分重画
delete pByte;
CloseHandle(hProcess);
getchar();
return 0;
}以上就是 C/C++之win98扫雷外挂基础篇的内容,更多相关内容请关注PHP中文网(www.php.cn)!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号