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扫雷外挂增强版相关推荐
- C/C++之win98扫雷外挂基础篇
本次以win98扫雷"高级"场为例子的基础篇代码,稍后会写出所有场通用篇 扫雷"高级"场是指 下面是OD和win98扫雷下载 链接:http://pan.bai ...
- C#扫雷外挂辅助工具
C#扫雷外挂辅助工具 C#使用CE工具获取到扫雷的内存地址,调用API接口读取内存地址来获取具体的位置是否有雷,使用鼠标来点击. using System; using System.Collecti ...
- 教你DIY中文增强版Geexbox,且安装为硬盘版
[url]http://hi.baidu.com/dekiny/blog/item/10421bced025433ab700c8c7.html[/url] [url]http://geexbox.or ...
- 优秀课程案例:使用Scratch制作坦克大战增强版!
点击上面微信号关注我关注我哟每天坚持推送文章,争取做到日更,喜欢的可以设置星标,并分享点赞我们的文章,非常感谢大家的支持,您的点击的在看就是我们的动力! 今天我们来分享一个坦克大战增强版.同时大家持续 ...
- Google Chrome 81.0.4044.113 绿色增强版
Google Chrome浏览器增强版,由shuax基于官方正式版打包而成,加入便携化注入模块Chrome++增强软件,强制实现flash插件支持,解除Adobe Flash Player地区不相容限 ...
- qBittorrent下载|qBittorrent绿色中文增强版32/64位下载 v4.1.7
点击下载来源:qBittorrent下载|qBittorrent绿色中文增强版32/64位下载 v4.1.7 qBittorrent是一个基于Qt工具箱和libtorrent-rasterbar并用C ...
- 将表里的数据批量生成INSERT语句的存储过程 增强版
原文:将表里的数据批量生成INSERT语句的存储过程 增强版 将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的 ...
- MySQL:讨人喜欢的 MySQL replace into 用法(insert into 的增强版)
讨人喜欢的 MySQL replace into 用法(insert into 的增强版) 在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在: 2. 如果不存在,则插入:3.如果 ...
- Facebook增强版LASER开源:零样本迁移学习,支持93种语言
来源| Facebook AI 研究院 译者 | Linstancy 责编 | 琥珀 出品 | AI 科技大本营(ID:rgznai100) [导语]为了加速自然语言处理 (NLP) 在更多语言上实现 ...
最新文章
- python 网络聊天服务端
- Asp.net控件之异同:HTML控件与Web服务器控件
- 苏州php速成,PHP入门速成
- Linux学习路径(小白必看)
- delphi打开word文件(刚刚学会的嘿嘿~)
- PPT图片内嵌文字效果
- WCF Rest Service
- [导入]Visual Studio 2005 Web Deployment Projects版本不同引发的问题
- ssas 分区 设置_如何在Analysis Services多维中对SSAS多维数据集进行分区
- PHP 每天的总结(1)
- 1 Hello World,JavaFX Style
- mysql_num_rows
- mysql插入汉子1366_mysql 向列表中添加漢字錯誤 1366
- cat6 万兆_CAT6、CAT6A超六类和CAT7七类网线哪个更适合10GBASE-T万兆网络?
- opencv基于MultiTracker的多目标跟踪
- Delphi XE10.4字体字号对应的Font Size的点或像素换算
- 【C/C++基础进阶系列】C/C++ STL -- 智能指针
- 手机安全卫士------查询号码归属地
- Matlab / ArcGIS 处理GPM全球月均降水数据
- 【学习笔记】迁移学习分类