欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

QT| C/C++之win98扫雷外挂增强版

发布时间:2025/3/15 c/c++ 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 QT| C/C++之win98扫雷外挂增强版 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

看到这篇前请先看这篇http://blog.csdn.net/qq78442761/article/details/53312300

当我们到初级场和中级场和自定义的时候,发现并不好分辨具体的雷和非雷的位置,但我们只要对那段内存进行大批量修改就可以了。这是最简单的方法,下面是演示:


下面是C/C++代码:

widget.h

#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <windows.h>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();public slots:void StartMine(); //开始扫雷private:Ui::Widget *ui; };#endif // WIDGET_H


widget.cpp

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("扫雷外挂");connect(ui->StartpushButton,SIGNAL(clicked(bool)),this,SLOT(StartMine())); } void Widget::StartMine() {//寻找窗口HWND hWinmine=FindWindow(NULL,L"扫雷");DWORD dwPID=0;GetWindowThreadProcessId(hWinmine,&dwPID);//获取ProcessID,写入dwPID中//成功:返回进程句柄。//失败:返回0。// 通过PID得到进程的句柄信息HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,dwPID);//找基础地址、雷数、宽度、高度DWORD dwBaseAddr=0x01005330;DWORD dwNum=0,dwWidth=0,dwHight=0,dwSize=0;// 读取内存信息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);//显示到程序上ui->MineNumLable->setText(QString::number(int(dwNum),10));ui->WideLable->setText(QString::number(int(dwWidth),10));ui->HighLable_3->setText(QString::number(int(dwHight),10));//棋盘总大小DWORD dwReadsize=(dwWidth+20)*(dwHight+20);PBYTE pByte=new BYTE[dwReadsize];ReadProcessMemory(hProcess,(LPVOID)(dwBaseAddr),pByte,dwReadsize,&dwSize);BYTE bClear=0x8E;for(size_t i=0;i<dwReadsize;i++){if(pByte[i]==0x8F){WriteProcessMemory(hProcess,(LPVOID)(dwBaseAddr+i),&bClear,sizeof(BYTE),&dwSize);}}RECT rt={0};GetClientRect(hWinmine,&rt);InvalidateRect(hWinmine,&rt,true);delete pByte;CloseHandle(hProcess); }Widget::~Widget() {delete ui; }

main.cpp

#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }

新人创作打卡挑战赛发博客就能抽奖!定制产品红包拿不停!

总结

以上是生活随笔为你收集整理的QT| C/C++之win98扫雷外挂增强版的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。