• 无图版
  • 风格切换
  • 帮助
  • Home首页
  • 论坛首页
登录  注册
  • 讨论区
  • 推荐
  • 搜索
  • 社区服务
  • 银行
用户名
热门版块: 
  • 175豆客CS作弊器交易中心 
  • 『 电脑技术支持 』 
  • ◆- ┈┋ 事 务 中 心 ┋┈ 
  • 『网游外挂』 
  • 『特种部队』 
  • 〖 论坛公告 〗 
  • love
  • wind
  • 用户中心首页
  • 编辑个人资料
  • 查看个人资料
  • 好友列表
  • 用户权限查看
  • 积分管理
  • 积分转换
  • 特殊组购买
  • 收藏夹
  • 我的主题
  • 基本统计信息
  • 到访IP统计
  • 管理团队
  • 管理统计
  • 在线统计
  • 会员排行
  • 版块排行
  • 帖子排行
  • 个人首页
  • 我的收藏
  • 好友近况
〖175豆客作弊器自由发布/技术讨论区〗 制作CS作弊器的详细教程(中文版)

    ●论坛动态帖●

  • ♀论坛新帖.新回复♀
  •  

    ◆- ┈┋ 事 务 中 心 ┋┈

  • 【论坛在线聊天室】
  • 论坛事务所
  • 论坛广告宣传,免费加入VIP
  •  

    ◆- ≡ 论坛公告

  • 〖 论坛公告 〗
  • 〖公告〗加入VIP会员向本站汇款方法
  • 购买175pt,豆客作弊器csol作弊器请于客服联系,QQ130119281
  •  

    ≡ 175豆客作弊器下载区

  • 〖175豆客作弊器自由发布/技术讨论区〗
  • 〖175豆客CS外挂软件和客户端下载〗
  • 175豆客CS作弊器交易中心
  •  

    [战地之王][反恐行动][特种部队][DOD胜利之日][BF2(战地2)][反恐起源]

  • 『战地之王外挂』
  • 『反恐行动外挂』
  • 『特种部队』
  • 新特种部队
  • 『网游外挂』
  • 『胜利之日』
  • 『BF2(战地2)』
  • 反恐起源CS.S

    尊贵VIP下载区——客服QQ:130119281

  • 〖 顶级作弊器下载区 〗
  • 〖顶级作弊器/程序发布区〗
  • 〖 用户脚本下载区 〗
  • 〖 用户问题解答区 〗

    ≡ 作弊器研讨区

  • 〖 作弊器开发研讨区 〗
  •  

    ┈┋站内事务┋┈ ≡

  • 〖 站内事务 〗
  •  

    ┈┋ 休 闲 娱 乐 ┋┈

  • ≮经典影视≯
  • ≮ 极 限 贴 图 ≯
  • ≮ 影 视 动 漫 ≯
  • ≮ 闲 聊 广 场 ≯
  • ≮ 音 乐 在 线 听,MP3下载,免费下载≯
  •  

    -=电脑技术,软件发布=-

  • 『 电脑技术支持 』
  • 『 最新软件工具发布 』

    【CS1.6175pt豆客平台专区】

  • 【CS1.6175pt豆客平台专区】
  •  
aoe豆客v3.24作弊器豆客v3.24外挂豆客v3.23最新透视作弊器豆客v3.23最新透视外挂 175pt5.1.4.8作弊器175pt5.1.4.8外挂175pt5.1.4.7最新透视作弊器175pt5.1.4.7最新外挂 各类源码:辅助源码 软件源码 商业源码 VIP源码 普及信息技术、提升职业技能、学习安全攻防、卫我网络长城
热烈欢迎中国红客联盟华南分组加盟本站 承接软件开发、程序破解(包含基于VM技术加密的破解)、代码审核 源码出售 各种社工库源码的评析 想做库的一定来看看 万挂编程-国内最大的游戏辅助门户网站
逆向工程、协议分析、漏洞研究相关资料大全 华南红客帝国技术论坛和本站强强联合,提供顶级辅助下载 最全最新版本网游辅助点我下载 专业的编程论坛 国内最火爆的万挂编程C语言论坛
  • 上一主题
  • 下一主题
  • 新 帖
复制链接 | 浏览器收藏 | 打印
打烂缸
级别: 论坛版主

  • 作者资料
  • 发送短消息
  • 加为好友
UID: 6
精华: 0
发帖: 50
威望: 139 点
金钱: 400 RMB
贡献值: 0 点
注册时间: 2008-08-23
最后登录: 2009-04-22
楼主  发表于: 2008-09-01 20:23
只看楼主 | 小 中 大

 制作CS作弊器的详细教程(中文版)

这篇文章告诉你怎样做一个属于你自己的CS作弊器,假如你是一个程序老手,了解钩子技术的话,这篇文章将给你一些启发。
]实现功能1:透视

透视是我们做CS作弊器中的重中之重。

在被你用API钩子钩住的glBegin函数里,如果拦截到的参数mode是GL_TRIANGLE_STRIP,或GL_TRIANGLE_FAN,那么CS就有可能是准备画一个模型(人物,武器等),那么我们可以用glDisable(GL_DEPTH_TEST)来告诉OpenGL:我们想颠倒这个模型的绘制顺序。在游戏中就可以看到,墙壁后背的人物,模型等全跑到了墙壁的前面。这看上去图象顺序有点乱,但这正是我们作弊器“透视”的原理所在!  

有些人在绘制所有模型之前调用这个函数,那就会把你的整个游戏画面都打乱了,请大家务必注意。

void APIENTRY my_glBegin( GLenum mode )

{

if((mode==GL_TRIANGLE_STRIP||mode==GL_TRIANGLE_FAN))

glDisable(GL_DEPTH_TEST);

  glBegin(mode);
  
}

实现功能2:高亮显示:
由于光线的问题,在暗处人物也会显得很暗,那怎样把他变得更亮,以便我们游戏时容易发现目标呢?为了达到这种效果,就得钩住glVertex3f,然后在原有函数(区别于我们钩住的函数)调用前加上这行代码:
glColor4f(1.0f, 1.0f, 1.0f, 1.0f)

就这么简单就达到了我们想要的功能。

void APIENTRY my_glVertex3f(GLFloat x, GLFloat y, GLFloat z)  

  glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

    glVertex3f(x, y, z);

}

实现功能3:去除烟幕:
烟幕弹发出的灰烟有的时候会挡住我们的视线,使敌人有可乘之机。所以去除烟幕是CS作弊器中必不可少的功能之一。

实现这个功能必须做的就是钩住glBegin 和 glVertex3fv,然后定义一个bool变量bSmoke来作为开关。在钩住的glBegin中,检查当前参数mode的值是否为GL_QUADS。如果是的话,取当前颜色:  

glGetFloatv(GL_CURRENT_COLOR, &curcol)

现在我们看curcol是否为灰色(灰色就是R=G=B)。然后就是要排除1.0和0.0,因为这样才能不把某些其他物体去除了。

所以如果当前颜色是灰色,并且不是白色(1.0)、黑色(0.0)时,我们就把bSmoke设为true。当然在别的时候或不是绘制烟幕时,要把bSmoke设为false。

现在就可以在glVertex3fv中判断bSmoke是否为true,如果是,直接return不处理它。这样去除烟幕的功能便算完成了。

void APIENTRY my_glBegin( GLenum mode )

    if(mode==GL_QUADS)  
    {

        float curcol[4];

        glGetFloatv(GL_CURRENT_COLOR, curcol);

if((curcol[0]==curcol[1])&&(curcol[1]==curcol[2])&&(curcol[0]!=1.0f)&&(curcol[0]!=0.0f))bSmoke=true;

else bSmoke=false;

  glBegin(mode);

}

void APIENTRY my_glVertex3fv(const GLfloat *v)

{

    if(bSmoke)return;

    else glVertex3fv(v);

}

实现功能4:去除闪光:
闪光的影响比烟幕的还大,白屏相信大家都不喜欢。所以去除它是必然的。实现这个功能要钩两个函数:glBegin和glVertex2f。

CS在画控制台和某些文字时也会用到glVertex2f,所以我们在做这个功能时要小心不要把不该屏蔽的东西屏蔽了。其实闪光的原理就是把一张白色方形贴到屏幕上,然后随着时间改变Alpha透明度,所以我们就要检查看有没有白色的QUAD并且覆盖了你的整个屏幕,如果有,那就要留意了。

在glBegin中,检查mode是否为GL_QUADS,如果是,取当前颜色:

glGetFloatv(GL_CURRENT_COLOR, &curcol)

现在来看看什么是纯白:纯白就是R=1,G=1,B=1,如果检测到符合这些条件的话,那就很有可能现在画的就是闪光,但是还是不敢确定到底是不是,所以我们要同时从别处入手。

当一个OpenGL程序调用glBegin时,接着将会调用glVertex*来画模型的顶点,绘制完成后将调用glEnd来收尾。我研究发现CS画简单的方型是用glVertex2f,所以同样我们也要钩住这个函数。

为了联系glBegin和glVertex2f,我们在www.mm-mm.org.cn 找到了详细的实现方法,就是用bool变量bFlash来表示是否为一个白色的方型(即是否是烟幕效果)。下一步是获取当前屏幕的尺寸:

glGetFloatv(GL_VIEWPORT, &coords)

这样屏幕就保存在了coords里:

coords[0] = 0
  
coords[1] = 0

coords[2] = 宽

coords[3] = 高

现在在我们钩住的glVertex2f里,如果不符合“闪光”的条件,调用回原有的函数,如果符合的话,就比较glVertex2f传给我们的第二个参数y和coords[3](屏幕高度)是否一样,如果是,则表明CS准备绘制白色闪光或全屏模式的控制台,但是这两者实在是不好区分,所以只有把阿尔法值设置得很小,这将不会影响到控制台,同时也把白色闪光去掉了:

glColor4f(curcol[0], curcol[1], curcol[2], 0.01f)  

大家可以试试。

void APIENTRY my_glBegin( GLenum mode )  

    if(mode==GL_QUADS)

        float curcol[4];

        glGetFloatv(GL_CURRENT_COLOR, curcol);  

glGetFloatv(GL_VIEWPORT, coords);

        if((curcol[0]==1)&&(curcol[1]==1)&&(curcol[2]==1))bFlash=true;

void APIENTRY my_glVertex2f(GLfloat x, GLfloat y)
  
float curcol[4];

glGetFloatv(GL_CURRENT_COLOR, curcol);

    if(bFlash &&(y==coords[3]))

        glColor4f(curcol[0], curcol[1], curcol[2], 0.01f);

    glVertex2f(x, y);  
我们都是神枪手,每个子弹消灭一个战友
顶端
  • 回复
  • 引用
  • 分享
  • 上一主题
  • 下一主题
〖175豆客作弊器自由发布/技术讨论区〗

Total 0.030782(s) query 2, Time now is:05-11 20:15, Gzip enabled
Powered by www.dcoosxecd.com AOECS作弊器专业下载站 Code © 2003-09 www.dcoosxecd.com Corporation
    清除Cookies | Contact us | Wap | Top  |