前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >逆向知识之CS辅助/外挂专题.2.实现CS1.6透视原理

逆向知识之CS辅助/外挂专题.2.实现CS1.6透视原理

作者头像
IBinary
发布2018-09-28 15:10:03
4.8K0
发布2018-09-28 15:10:03
举报
文章被收录于专栏:逆向技术

一丶透视简介

我们涉及到FPS游戏.免不了说透视.自瞄什么的. 在CS1.6中. 有OpenGl.也有D3D.

透视的方法很多. gl透视(也就是CS中可以实现的透视)  D3D透视. HOOKD3d的绘图函数.设置渲染状态就可以实现透视. 方框透视.

根据敌人坐标以及我们的坐标. 使用三角函数(sin cos tan) 以及转换屏幕比例算法. 求出的透视. 这种透视是通用的. 因为是算法计算出来了.依赖的就是游戏中的敌人跟我们的坐标.

二丶透视原理

  Gl透视. 所讲的这个透视是说CS中的透视.

  首先知道两个函数  openGL32.DLL 中的 glBegin(渲染ID)  glDisable(ID) 关闭渲染.

其实在CS中实现透视很简单. 

  1.HOOK glBegin函数. 过滤ID. 看看那个是人物ID.

  2.HOOK之后.判断是否是人物ID.如果是.则关闭渲染.

  3.跳转回去.继续执行.

根据这个方法.也可以知道闪光弹绘制的时候的ID.我们也可以判断.这样也就实现了无视闪光了.

三丶HOOK代码.

        1.寻找Opengl32.dll. 从导出表中查看glBegin的偏移. 以及glDisable的偏移.

  2.申请一块内存空间.

  3.内存空间中写入我们的ShellCode. 也就是我们的HOOK代码.

  4.重定位到glBegin函数位置. 进行HOOK. 跳转到我们ShellCode执行位置.

关于HOOK以及HOOK重定位函数不多说了. 做逆向的话这些必须需要会. 

1.HOOK glBegin位置.跳转到我们申请的空间. 当然.这里需要重定位. 目的地址 - 源地址 - 5

2.执行我们的ShellCode

上图汇编代码的意思是 比较esp +4 也就是参数值是否是人物ID. (cs中 5 6 )都可以

如果不想等.则恢复以前的HOOK地址位置值.并且跳转回去.

如果相等. 调用glDisable函数.参数的值是 0xB71

这样就可以完成一个HOOK.

当然写HOOK代码注意的问题很多. 比如Call glDisable的时候.你需要重定位glDisable.并且写入到里面.

JMP回来的时候.也需要重定位.

四丶实现过后的表现形式.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一丶透视简介
  • 二丶透视原理
  • 三丶HOOK代码.
  • 四丶实现过后的表现形式.
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档