[原创]CS1.6透视外挂的简单分析(非D3D Hook)(内含透视源码)
cs1。6的透视外挂,逆向,写个opengl32透视,把今天成功分享给大家。。。
其实,也很简单,代码挺少的,需要的工具,cs1.6,ollydebug,vs2010,gl32.h,和OpenGL32.lib,这两个文件vc++6.0有,自己添加到工程里。
好了外挂报毒,我也是为了研究,都不管了,反正用杀毒杀一下,毕竟外挂都差不多是病毒,所以大家还是用虚拟机来吧,别学我。外挂和源码我都会上传在附件里面。
开始,讲了,首先OpenGL绘制图画是有个函数glBegin和glend一起工作的所以要HOOK就HOOK,glbegin,也很简单普通apiHOOK就可以了,不懂得可以参照源码。那我来说说,原理吧
void WINAPI MyglBegin(GLenum mode)
{
if(mode==GL_TRIANGLE_STRIP||mode==GL_TRIANGLE_FAN)
{
glDisable(GL_DEPTH_TEST);
}
return glBegin(mode);
}
这是我自己的glbegin函数,就一个参数,再判断mode,如果符合条件那就执行glDisable(GL_DEPTH_TEST);很简单吧,那些参数详细的我就不多说了,主要是讲对外挂简单的逆向吧
先打开外挂,再开cs1.6,记住操作顺序,进入游戏,按insert呼出外挂,按照提示,开启透视
,接着可以附加游戏了,然后输入要跟随的表达式glBegin,然后在那边下个断点,
接着ctrl+f9执行到返回,这样你就可以看到,
然后继续ctrl+f9,你还看到了
,这就是游戏对glbegin函数的调用,显然被替换成了外挂的代码了,于是在那边下个断点f7跟进,就出现了,外挂的函数的内部了,
其中1,指的是glbegin的参数,如果等于5就跳走,2也是glbegin的参数,如果等于6就跳走,他是通过过滤glbegin的参数来判断是否执行gldisable函数的,3就是gldisable的参数了,他的功能好像是禁止深度检测,4就是gldisable函数了,很简单吧.
