致力于分享游戏安全技术,提供专业的游戏安全资讯
游戏外挂想要获取游戏的信息,都是通过读内存或则接管收包的方法办到的。
这里我们先来说下读内存的代码实现方式。
首先我们声明一个人物结构
通过成员函数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.QQ.COM)
近期精品文章:
【游戏漏洞】Dnf游戏漏洞挖掘第4期 全屏秒杀+远程CALL
∨
投稿文章:[email protected]
原文始发于微信公众号(游戏安全实验室):【技术入门】读内存调试输出人物信息
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论