当前位置: 首页> 汽车> 时评 > 102.游戏安全项目-显示人物属性

102.游戏安全项目-显示人物属性

时间:2025/7/11 7:54:11来源:https://blog.csdn.net/qq_36301061/article/details/142220333 浏览次数: 0次

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

内容参考于:易道云信息技术研究院

上一个内容:101.游戏安全项目-创建人物对象结构

效果图:

以 101.游戏安全项目-创建人物对象结构 它的代码为基础进行修改

首先给编辑框添加一个变量

它的属性

htdMfcDll.cpp文件的修改

LRESULT CALLBACK KeyCallBack(int nCode, WPARAM w, LPARAM l)
{if (nCode == 0){if ((l & (1 << 31)) == 0){if (PtheApp->bal)PtheApp->bal->DisKeybord(w);switch (w){case VK_HOME:if (PtheApp->wndMain == NULL){PtheApp->wndMain = new CUI();PtheApp->wndMain->Create(IDD_MAIN);}if (PtheApp->bal == NULL) {PtheApp->bal = new CBAL(PtheApp->wndMain);}break;}}}return CallNextHookEx(keyHook, nCode, w, l);
}

CUIWnd_0.cpp文件的修改

void CUIWnd_0::ShowPlayerInfos(wchar_t* val)
{tctInfos = val;UpdateData(FALSE);
}

CUI.cpp文件的修改

void CUI::ShowInfos(wchar_t* val)
{CUIWnd_0* ui0 = (CUIWnd_0*)Pages[0];ui0->ShowPlayerInfos(val);
}

CGAME.cpp文件

#include "pch.h"
#include "CGAME.h"CGAME::CGAME()
{player = (PAIM)0x4cef08;
}

CBAL.cpp文件

#include "pch.h"
#include "CBAL.h"
CBAL* _balThis;
void _stdcall UIShow(HWND, UINT,UINT_PTR, DWORD) {if (_balThis)_balThis->ShowInfos();
}CBAL::CBAL(CUI* _ui)
{_balThis = this;ui = _ui; game = new CGAME();if(ui)SetTimer(ui->m_hWnd, 10000, 10, UIShow);
}void CBAL::DisKeybord(WPARAM w)
{switch (w){case VK_HOME:if (ui)ui->ShowWindow(_bui = !_bui);break;default:break;}
}void CBAL::ShowInfos()
{AIM* p = game->player;CStringA txt;txt.Format("昵称:[%s]\r\n", p->Name);CStringA txtInfoA;txtInfoA += txt;txt.Format("等级:[%d]\r\n", p->Level);txtInfoA += txt;txt.Format("经验:[%d/%d]\r\n", p->Exp, p->MaxExp);txtInfoA += txt;txt.Format("生命:[%d/%d]\r\n", p->HP, p->MAxHP);txtInfoA += txt;txt.Format("内力:[%d/%d]\r\n", p->MP, p->MaxMP);txtInfoA += txt;txt.Format("体力:[%d/%d]\r\n", p->TP, p->MaxTP);txtInfoA += txt;txt.Format("坐标:[x:%d y:%d]\r\n", p->x, p->y);txtInfoA += txt;CString txtW;txtW = txtInfoA;ui->ShowInfos(txtW.GetBuffer());
}

htdMfcDll.h文件

// htdMfcDll.h: htdMfcDll DLL 的主标头文件
//#pragma once#ifndef __AFXWIN_H__#error "在包含此文件之前包含 'pch.h' 以生成 PCH"
#endif#include "resource.h"        // 主符号
#include "CUI.h"
#include "CBAL.h"// ChtdMfcDllApp
// 有关此类实现的信息,请参阅 htdMfcDll.cpp
//class ChtdMfcDllApp : public CWinApp
{
public:ChtdMfcDllApp();// 重写
public:virtual BOOL InitInstance();CUI* wndMain{};CBAL* bal{};DECLARE_MESSAGE_MAP()
};

CUIWnd_0.h文件

#pragma once
#include "afxdialogex.h"// CUIWnd_0 对话框class CUIWnd_0 : public CDialogEx
{DECLARE_DYNAMIC(CUIWnd_0)public:CUIWnd_0(CWnd* pParent = nullptr);   // 标准构造函数virtual ~CUIWnd_0();// 对话框数据
#ifdef AFX_DESIGN_TIMEenum { IDD = IDD_PAGE_0 };
#endifprotected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持DECLARE_MESSAGE_MAP()
public:CString tctInfos;void ShowPlayerInfos(wchar_t* val);afx_msg void OnEnChangeEdit1();
};

CUI.h文件

#pragma once
#include "afxdialogex.h"
//增加页面头文件
#include "CUIWnd_0.h"
#include "CUIWnd_1.h"
//游戏辅助UI类
// CUI 对话框
#define MAX_PAGE_MAIN 3
class CUI : public CDialogEx
{DECLARE_DYNAMIC(CUI)public:CUI(CWnd* pParent = nullptr);   // 标准构造函数virtual ~CUI();// 对话框数据
#ifdef AFX_DESIGN_TIMEenum { IDD = IDD_MAIN };
#endifprotected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持DECLARE_MESSAGE_MAP()CDialogEx* Pages[MAX_PAGE_MAIN];short      CurPage = 0;
public:CTabCtrl mTab;virtual BOOL OnInitDialog();bool    InstallPage(CDialogEx* wnd, int IDD_WND, CString&& _Name, BOOL IsShow=FALSE);afx_msg void OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult);void ShowInfos(wchar_t* val);
};

CGAME.h文件

#pragma once
#include <htdHook2.h>
#include "AIM.h"
//游戏底层对接类
class CGAME
{
public:CGAME();PAIM player;htd::hook::htdHook2 hook;
};

AIM.h文件

#pragma once
typedef class AIM {int unknownB1[4];
public:int HP; // 生命值int MAxHP; // 最大生命值int TP; // 体力int MaxTP; // 最大体力int MP; // 内力int MaxMP; // 最大内力int Act; // 攻击力int Def; // 防御力int SF; // 身法int Level; // 等级
protected:int unknownB31;
public:int Exp; // 经验值int MaxExp; // 最大经验值
protected:int unknownB37[2];
public:int Face; // 面向
protected:int unknownB46[2];
public:int x; // x坐标int y; // y坐标
protected:int unknownB43[36];
public :char Name[32]; // 名称char Body[32]; // 身体配置char Die[32]; // 尸体
protected:int unknownB58[16];int unknownB52[475];}*PAIM;

CBAL.h文件

#pragma once
//游戏外挂逻辑类
#include "CUI.h"
#include "CGAME.h"
class CBAL
{CUI* ui;bool _bui{};CGAME* game;
public:CBAL(CUI* _ui = nullptr) ;~CBAL() {};void DisKeybord(WPARAM w);void ShowInfos();
};

关键字:102.游戏安全项目-显示人物属性

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: