14.第二阶段x86游戏实战2-C++语言开发环境搭建-VisualStudio2017

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

需要的工具在下图红框的目录里

上一个内容:13.第二阶段x86游戏实战2-动态模块地址

原视频有多节C++和易语言(易语言用的不多,会以C++为主)基础,这里就不写基础了,不写的原因是后面写代码的时候我会把代码描述的超级详细,直接抄代码就行然后看看描述就能懂,所以专门为了写C++代码去写基础介绍会浪废时间,跟着多抄抄代码也能掌握C++,现在的主线是逆向技术而不是写代码的技术,不管是C++还是易语言还是其它语言都是逆向的过程中顺手学的,不要为了这种顺手的事专门花时间去搞,东西很多这些东西都是可以舍弃的,快节奏的时代,你在学基础别人可能已经在搞赚钱的技术了,所以边搞赚钱的技术边学基础,这样才能省下时间追上别人的脚步跟别人内卷。

然后开始:

然后有一个没法省略的东西,C++环境搭建,环境搭建就是安装写C++代码的程序和把C++代码搞成exe文件或dll文件的程序(安装写代码的程序和把代码编译可以运行的程序),这里使用Visual Studio 2017,Visual Studio 2017是微软提供的,为了后续方便最好用Visual Studio 2017,不要用其它版本的Visual Studio,Visual Studio 2017的安装包已放到了百度网盘中

如下图Visual Studio 2017安装程序

双击打开Visual Studio 2017安装程序之后,会出现下图的窗口

然后勾选下图红框的四项,安装之前记得改一下安装目录

点击安装之后,等待安装完成

安装完它会自动启动,如果没有自动启动点击下图红框

然后安装完它可能不会在桌面上创建快捷方式,需要手动创建一下,如下图红框devenv.exe就是visual studio的启动文件,创建快捷方式的时候记得给它重命名改成 visual studio 2017

如下图创建快捷方式

桌面快捷方式

创建快捷方式之后就不用再通过下图红框的方式启动visual studio 2017了

启动之后点击以后再说

然后选择一个主题(窗口样式 ),然后点启动Visual Studio

然后等待它准备完

准备完之后它就会打开下图的窗口了

安装完之后创建一个项目

然后选择MFC动态链接库,动态链接库是一个.dll的文件

然后记得改一下存放代码的目录,起一个名称,这里叫tl,然后点确定

然后选择静态链接到MFC,然后点确定

点击确定之后,下图中左边的解决方案位置会不一样,可以用鼠标拖动调整

然后打开一下资源视图,如下图

然后添加一个窗口

然后如下图选择Dialog

新建完会是下图中的样子

然后选择工具箱

工具箱如下图

然后拖出一个Button,Button是一个按钮,如下图

修改它的属性

然后右击窗口添加一个类,类可以理解为用来描述某堆数据是什么的东西

然后起个类名然后点确定

然后它创建的文件

然后编写代码显示上面CM窗口,如下图

完整代码

// tl.cpp: 定义 DLL 的初始化例程。
//#include "pch.h"
#include "framework.h"
#include "tl.h"
#include "CM.h"#ifdef _DEBUG
#define new DEBUG_NEW
#endif//
//TODO:  如果此 DLL 相对于 MFC DLL 是动态链接的,
//		则从此 DLL 导出的任何调入
//		MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
//		该函数的最前面。
//
//		例如: 
//
//		extern "C" BOOL PASCAL EXPORT ExportedFunction()
//		{
//			AFX_MANAGE_STATE(AfxGetStaticModuleState());
//			// 此处为普通函数体
//		}
//
//		此宏先于任何 MFC 调用
//		出现在每个函数中十分重要。  这意味着
//		它必须作为以下项中的第一个语句:
//		出现,甚至先于所有对象变量声明,
//		这是因为它们的构造函数可能生成 MFC
//		DLL 调用。
//
//		有关其他详细信息,
//		请参阅 MFC 技术说明 33 和 58。
//// CtlAppBEGIN_MESSAGE_MAP(CtlApp, CWinApp)
END_MESSAGE_MAP()// CtlApp 构造CtlApp::CtlApp()
{// TODO:  在此处添加构造代码,// 将所有重要的初始化放置在 InitInstance 中
}// 唯一的 CtlApp 对象CtlApp theApp;CM * PMainDialog;// 声明一个CM类型窗口的指针类型,XX * 只要有这样的*就是指针类型,指针的值会被视为内存地址
DWORD WINAPI ShowDialog() {// 开启线程执行它里面的代码,{}之间的代码PMainDialog = new CM; // 创建CM窗口对象,也就是把CM窗口的数据放到内存中PMainDialog->DoModal(); // 显示窗口/**到这就执行完了,delete是用来清理内存的,delete PMainDialog意思就是把 PMainDialog 指向的内存清理掉*/delete PMainDialog; FreeLibraryAndExitThread(theApp.m_hInstance, 1);// 关闭线程return TRUE;
}// CtlApp 初始化BOOL CtlApp::InitInstance()// 程序的入口,就是我们代码运行之后会进入这里面
{CWinApp::InitInstance();/**CreateThread开启一个线程,执行代码的东西被称为线程::CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)ShowDialog, NULL, NULL, NULL);意思是开启一个线程去执行名字叫 ShowDialog 的函数(代码)*/::CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)ShowDialog, NULL, NULL, NULL);return TRUE;
}

然后如下图,重新生成,意思是把代码编译成.dll文件

编译好的dll文件位置,位置在项目的目录中,然后复制一下下图红框的文件,也就是复制tl.dll文件

然后有一个注入器,这个注入器已放到百度网盘中了 ,注入器用来把dll文件放到某个已运行的程序中,注入dll被注入进某个程序中之后会执行上方写的InitInstance函数

把tl.dll复制到注入器的目录里

双击运行注入器之后如下图,改一下dll名字,改成tl.dll(tl.dll里的tl是根据项目名来的),然后点击注入,点击注入记得运行游戏,进程名就是游戏运行后任务管理器的哪个名字

如下图,效果图:刚刚写的dll文件就放到了游戏中运行了,运行了InitInstance函数创建了CM窗口

上方的代码不全,只有手写的代码

完整代码:代码目录如下图红框

链接:https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg?pwd=q9n5

提取码:q9n5

复制这段内容后打开百度网盘手机App,操作更方便哦


img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1544811.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

复制他人 CSDN 文章到自己的博客

文章目录 0.前言步骤 0.前言 在复制别人文章发布时,记得表明转载哦 步骤 在需要复制的csdn 文章页面,打开浏览器开发者工具(F12)Ctrl F 查找"article_content"标签头 右键“Copy”->“Copy element”新建一个 tx…

【直线 / B】

题目 代码&#xff08;巨复杂&#xff0c;跑了我十几分钟&#xff09; #include <bits/stdc.h> using namespace std; const double eps 1e-6; const int N 18e6; #define x first #define y second typedef pair<int, int> PII; int line; PII p1[N]; PII p2[N…

React开发环境搭建以及常见错误解决

‌React开发环境搭建主要包括Node.js安装、编辑器选择、创建React项目等步骤‌。 Node.js安装‌ 从Node.js官网下载并安装最新版本的Node.js&#xff0c;安装过程中npm会自动安装。安装完成后&#xff0c;通过命令行输入node -v和npm -v检查安装是否成功。 carawang%node -v…

transformer模型写诗词

加入会员社群&#xff0c;免费获取本项目数据集和代码&#xff1a;点击进入>> 1. 项目简介 该项目是基于A035-transformer模型的诗词生成系统&#xff0c;旨在通过深度学习技术实现古诗词的自动化创作。项目的背景源自当前自然语言处理领域的迅速发展&#xff0c;特别是…

C++【类和对象】(构造函数与析构函数)

文章目录 1. 类的默认成员函数2. 构造函数析构函数的特点3. 析构函数析构函数的特点 结语 1. 类的默认成员函数 默认成员对象就是我们没有显示的写&#xff0c;但是编译器会自动生成的成员函数。一个类&#xff0c;我们不写的情况下编译器会默认生成以下6个成员函数&#xff0…

解决Nodify框架因自带放大缩小、平移功能导致拖拽添加的控件无法准确在鼠标放下的位置显示控件

ViewModel中写具体关键的几段代码&#xff1a; var editor sender as NodifyEditor; Point p e.GetPosition(editor);//放大缩小比例double scale editor.ViewportZoom;//经过放大缩小、平移后获得坐标点位置p new Point(Math.Round((p.X - editor.ViewportT…

响应式布局-媒体查询父级布局容器

1.响应式布局容器 父局作为布局容器&#xff0c;配合自己元素实现变化效果&#xff0c;原理&#xff1a;在不通过屏幕下面吗&#xff0c;通过媒体查询来改变子元素的排列方式和大小&#xff0c;从而实现不同尺寸屏幕下看到不同的效果。 2.响应尺寸布局容器常见宽度划分 手机-…

【Python】工具使用

pycharm Jupyter Notebook 参考文献 详解Jupyter Notebook (qq.com) python专业集成开发环境pycharm安装使用 (qq.com)

自动化学习3:日志记录及测试报告的生成--自动化框架搭建

一.日志记录 1.配置文件pytest.ini&#xff1a;将日志写入文件方便日后查询或查看执行信息。 需要将文件处理器&#xff08;文件存放位置/时间/格式等等&#xff09;添加到配置文件中的【日志记录器】 # pytest.ini [pytest] # ---------------日志文件&#xff0c;需要配合…

并发编程。

进程 1.什么是进程&#xff1f; 进程是具有独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的 独立单位。进程是可与其他程序并发执行的程序&#xff0c;在一个数据集合上的运行过程。它是系统进行 资源分配和调度的一个独立单位。 2.进…

日丰卫浴启动国货好物节,以“焕新+公益+体验”筑国民美好生活

在当下卫浴行业面临转型升级的大背景下&#xff0c;宏观政策持续推动以旧换新和消费升级&#xff0c;为市场注入了新的活力。随着中秋国庆双节的临近&#xff0c;卫浴消费逐步进入传统旺季&#xff0c;叠加利好政策&#xff0c;市场需求进一步活跃&#xff0c;日丰卫浴借此契机…

常见统计量与其抽样分布

什么是统计量 我们首先给出统计量的定义:设 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1​,X2​,⋯,Xn​ 为来自于总体X的一个样本&#xff0c; g ( X 1 , X 2 , ⋯ , X n ) g(X_1,X_2,\cdots,X_n) g(X1​,X2​,⋯,Xn​) 为关于 X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X…

【2024W37】肖恩技术周刊(第 15 期):中秋节快乐

周刊内容: 对一周内阅读的资讯或技术内容精品&#xff08;个人向&#xff09;进行总结&#xff0c;分类大致包含“业界资讯”、“技术博客”、“开源项目”和“工具分享”等。为减少阅读负担提高记忆留存率&#xff0c;每类下内容数一般不超过3条。 更新时间: 星期天 历史收录:…

微服务——配置管理

1.配置管理 微服务配置管理是指对微服务架构中各个服务的配置信息进行管理、更新、查询和审计等操作&#xff0c;以确保系统的正常运行和高效管理。例如&#xff0c;网关路由或某些业务配置在配置文件中写死了&#xff0c;每次修改都要重启服务。每个微服务都有很多重复的配置&…

同等学力英语历年真题有必要做吗

同等学力申硕历年真题是考生备考期间最重要的参考资料&#xff0c;在做真题的时候对那些经常出现的词汇要进行汇总整理&#xff0c;记忆高频词汇。 当你在阅读文章的时候发现不认识的单词或者一个熟悉的单词但是放在句子当中却读不通顺的这类单词的时候&#xff0c;一定要做好标…

WinCC中VB脚本和C脚本到底怎么选?

很多人认为VB脚本比C脚本慢&#xff0c;所以在WinCC中要尽量使用C脚本&#xff0c;以便提高性能&#xff0c;事实真是这样吗&#xff1f;工控人加入PLC工业自动化精英社群 先说结论&#xff1a;并非如此。在一个复杂的应用中&#xff0c;混合使用VB脚本和C脚本&#xff0c;对提…

mes系统在中小企业智能制造作用

MES系统&#xff08;制造执行系统&#xff09;在中小企业智能制造中扮演着至关重要的角色&#xff0c;其作用主要体现在以下几个方面&#xff1a; 1. 提升生产效率与质量 实时监控与数据采集&#xff1a;MES系统能够实时采集生产现场的各项数据&#xff0c;如设备状态、生产进…

Maya学习笔记:软选择

文章目录 打开软选择调整软选择范围衰减模式 软选择可以很好的进行渐变修改 打开软选择 方法1&#xff1a; 进入点线面模式&#xff0c;按B键进入软选择模式&#xff0c;再按B取消 方法2&#xff1a;双击左侧的选择按钮打开选择面板&#xff0c;勾选软选择 调整软选择范围 …

input文本框随其中内容而变化长

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><title>input文本框随其中内容而变化长</title><style>.input-length {border: 1px solid #ccc;padding: 5px;min-width: 10px;width: auto;}.in…

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——STM32代码实现篇

STM32代码实现 开启本章节需要完成下方的前置任务&#xff1a; 点击跳转&#xff1a; 物联网实践教程&#xff1a;微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 目标 1.连接OneNET&#xff1a;STM32使用串口与ESP8266/01s连接发送…