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,操作更方便哦