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.rhkb.cn/news/431082.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue-入门速通

setup是最早的生命周期,在vue2里边的data域可以使用this调用setup里面的数据,但是在setup里边不能使用thisvue项目的可执行文件是index,另外运行前端需要npm run vue的三个模块内需要三个不同的结构,里边放置js代码,注…

2024/9/21 leetcode 21.合并两个有序链表 2.两数相加

目录 21.合并两个有序链表 题目描述 题目链接 解题思路与代码 2.两数相加 题目描述 题目链接 解题思路与代码 --------------------------------------------------------------------------- 21.合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返…

CVPT: Cross-Attention help Visual Prompt Tuning adapt visual task

论文汇总 当前的问题 图1:在VTAB-1k基准测试上,使用预训练的ViT-B/16模型,VPT和我们的CVPT之间的性能和Flops比较。我们将提示的数量分别设置为1、10、20、50,100,150,200。 如图1所示,当给出大量提示时,VPT显示了性能的显著下降…

【MySQL 04】数据类型

目录 1.数据类型分类 2.数值类型 2.1 tinyint 类型 2.2 bit类型 2.3 float类型 2.4decimal 3.字符串类型 3.1 char类型 3.2 varchar类型 4.日期和时间类型 6. enum和set类型 6.1.enum和set类型简介: 6.2.enum和set的一般使用方法 6.3.用数字的方式…

如何用AI实现自动更新文章?(全自动更新网站)

AI的诞生确实给我们的生活和工作都带来了很大的改变,从我自身来讲,也渐渐习惯了遇到事情先问问AI,不管是翻译、专业性问题、PPT制作、总结写作这些,确实帮我迅速理清了思路,也可以有很多内容的借鉴。 作为一个业余爱好…

kismet和war driving具体准备(仅供无线安全学习)

war driving准备 一台笔记本 一个最好是双频的网卡,单频搜集信号少 我自己买的是http://e.tb.cn/h.grI4EmkDLOqQXHG?tkKZ5g3RVeH6f 如果经济条件允许可以去买大功率天线(我买的车载的 大概40db这样子 范围广) http://e.tb.cn/h.grCM0CQ6L…

Davinci 大数据可视化分析

Davinci 大数据可视化分析 一、Davinci 架构设计1.1 Davinci定义1.2 Davinci 应用场景 二、Davinci 安装部署2.1 部署规划2.2 前置环境准备2.3 Davinci部署2.3.1 物料准备2.3.2 安装配置 2.4 环境变量配置2.5 初始化数据库2.5.1 创建数据库及用户 2.5.2 建表2.6 初始化配置 三、…

7天速成前端 ------学习日志 (继苍穹外卖之后)

前端速成计划总结: 全26h课程,包含html,css,js,vue3,预计7天内学完。 起始日期:9.16 预计截止:9.22 每日更新,学完为止。 学前计划 课…

使用IDA Pro动态调试Android APP

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 关于 android_server android_server 是 IDA Pro 在 Android 设备上运行的一个调试服务器。 通过在 Android 设备上运行android_server,IDA Pro …

IDEA 2024.3 EAP新特征早览!

0 前言 IntelliJ IDEA 2024.3 第一个 EAP 版本已发布,提前体验 下一个重大版本的一部分改进。 持续关注 EAP 更新,未来几周内将推出更多 IntelliJ IDEA 新功能。尝试这些新功能,分享您的反馈,共同完善 IDE。 1 AI 助手 1.1 内…

计算机毕业设计之:基于微信小程序的电费缴费系统(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

【自动化测试】Appium Server如何安装和Appium Server安装困难的原因和解决方法以及常见的一些安装失败的错误和解决方法

引言 Appium Server安装过程时常出现问题,以下是安装Appium Server过程一些原因、常见错误和解决方法 文章目录 引言一、Appium Server如何安装1.1 Node.js 安装1.2 使用NPM安装Appium1.3 验证Appium安装1.4 运行Appium Server1.5 使用Appium Desktop(可…

Flutter 安装,配置,运行第一个app 1

起因, 目的: flutter, 其实几年前,我就写过。 当时纯属是个人兴趣,随意探索。 当时我也写了几篇笔记: 比如这一篇还有这个 flutter,其实不难,比较繁琐,小的知识点很多. flutter, 又是环境配…

独立站技能树/工具箱1.0 总纲篇丨出海笔记

正所谓要把一件事做到90分很难,但做到60分基本上照着SOP做到位都没问题,如果我们能把每件事都做到60分,那绝对比至少60%的人都强,除非你的对手不讲武德——那就是他很可能看了我这篇文章,不但每方面都超过及格线&#…

【Linux探索学习】第一弹——Linux的基本指令(上)——开启Linux学习第一篇

前言: 在进入Linux学习之前,我们首先要先做好以下两点:1、已经基本掌握C语言或C,2、已经配置好了Linux的环境,做完以上两点后我们就开始Linux的学习,今天我们首先要学习的就是Linux中最基础的操作&#xff…

网络安全-ssrf

目录 一、环境 二、漏洞讲解 三、靶场讲解 四、可利用协议 4.1 dict协议 4.2 file协议 4.3 gopher协议 五、看一道ctf题吧(长亭的比赛) 5.1环境 5.2开始测试 ​编辑 一、环境 pikachu,这里我直接docker拉取的,我只写原…

如何在SpringCloud中使用Consul进行服务发现与配置管理

Spring Cloud是一个用于构建分布式系统的开发工具包。它提供了一系列解决方案,用于在分布式系统中管理和协调服务发现、配置管理、负载均衡、容错机制等功能。Consul是一种用于服务发现、配置管理和分布式一致性的工具,与Spring Cloud可以很好地集成在一…

飞驰云联FTP替代方案:安全高效文件传输的新选择

FTP协议广泛应用各行业的文件传输场景中,由于FTP应用获取门槛低、使用普遍,因此大部分企业都习惯使用FTP进行文件传输。然而面临激增的数据量和网络安全威胁的不断演变,FTP在传输安全性与传输性能上有所欠缺,无法满足企业现在的高…

【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL77

编写乘法器求解算法表达式 描述 编写一个4bit乘法器模块,并例化该乘法器求解c12*a5*b,其中输入信号a,b为4bit无符号数,c为输出。注意请不要直接使用*符号实现乘法功能。 模块的信号接口图如下: 要求使用Verilog HDL语言实现以上…

活动目录安全

活动目录安全 1.概述2.常见攻击方式SYSVOL与GPP漏洞MS14-068漏洞Kerberoast攻击内网横移抓取管理员凭证内网钓鱼与欺骗用户密码猜解获取AD数据库文件 3.权限维持手段krbtgt账号与黄金票据服务账号与白银票据利用DSRM账号利用SID History属性利用组策略利用AdminSDHolder利用SSP…