CS1.6透视外挂的简单分析(非D3D Hook)

Home / Article MrLee 2016-4-10 8255

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,然后在那边下个断点,

glBegin


接着ctrl+f9执行到返回,这样你就可以看到,

外挂调用glBegin


然后继续ctrl+f9,你还看到了

外挂HOOK后


外挂没HOOK


,这就是游戏对glbegin函数的调用,显然被替换成了外挂的代码了,于是在那边下个断点f7跟进,就出现了,外挂的函数的内部了,

外挂代码


其中1,指的是glbegin的参数,如果等于5就跳走,2也是glbegin的参数,如果等于6就跳走,他是通过过滤glbegin的参数来判断是否执行gldisable函数的,3就是gldisable的参数了,他的功能好像是禁止深度检测,4就是gldisable函数了,很简单吧.*转载请注明来自看雪论坛@PEdiy.com
三个附件: 示例外挂  cs.6学习  cs1.6 opengl透视

本文链接:https://www.it72.com/9003.htm

推荐阅读
最新回复 (0)
返回