游戏安全实验室 首页 游戏漏洞 查看内容

【游戏漏洞】读内存调试输出人物信息

发布于:2018-6-27 10:44   |    82265次阅读 作者: 外部投稿    |   原作者: 通化程序员

游戏外挂想要获取游戏的信息,都是通过读内存或则接管收包的方法办到的。

这里我们先来说下读内存的代码实现方式。

 

首先我们声明一个人物结构

 

通过成员函数c初始化对结构进行初始化

以读基地址base为例

我们想读base里的值 首先对其进行类型强制转换

(DWORD *)Base 这样就将Base 转换成了DWORD型指针

然后前面加* 读里面的值

*(DWORD *)Base 就可以读取到基地址里的值。

当然其他地址也是一样的读取方法,但是需要注意数据类型

例如 上图中人物血量是FLOAT型 那么我们就需要  *(FLOAT*)人物血地址。

 

最后return this

 

然后我们在DLL dialog 上创建一个按钮 对其进行调试输出

我们写一个比较方便的调试输出子程序

 

void Call_输出调试信息(char*pszFormat,...)  //调试输出   固定代码 复制即可

{

#ifdef _DEBUG

 

char szbufFormat[0x1000];

char szbufFormat_Game[0x1100]="";

va_list argList;

va_start(argList,pszFormat);//参数列表初始化

vsprintf_s(szbufFormat,pszFormat,argList);

strcat_s(szbufFormat_Game,szbufFormat);

OutputDebugStringA(szbufFormat_Game);

va_end(argList);

 

#endif

 

}

 

我们看下调试输出效果

DebugView 中得到输出

证明读取成功

 

 


来源:通化程序员-公众号投稿

GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩2 赞1

收藏

上一篇:【游戏漏洞】注入DLL显示游戏窗口

下一篇:【游戏漏洞】asm内联调用CALL

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部