免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。
工具下载:
链接: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。 // // CtlApp BEGIN_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,操作更方便哦