1. R3隐藏模块

断LDR 链+ 抹去PE头

2. 如何防止通过call stack 检测调用的合法性

  1. 跳过目标call内检测的代码,因为检测一般也是通过hook实现,所以我们可以直接跳过这段检测代码。

  2. 建立假的栈帧 ,具体为我们先构造好我们自定义的栈帧,再通过jmp 指令跳到指定call 的内部,这样就避开了使用call导致自动创建栈帧。

3.定位call

1.虚函数差异调用定位
即通过一个动作发生前后虚函数调用的差异来判断实现特定功能的虚函数
2. Send函数回溯定位
通过对send函数的跟踪来定位关键call,但是值得注意的是在实际中可能send函数由一个专门的发包线程来执行,所以不容易回溯出关键信息,此外游戏有可能自己复制一份send函数的代码到内存区域中执行,所以在send函数处下断有可能根本无法断下来。对于这种情况我们可以在内存中搜索send函数的特征码来找到其函数。

4.Hook

  1. 对于FPS (Frame Per Second) 的理解
    每一秒刷新的次数即每一秒程序逻辑需要运行的次数,每过fps分之一的时间,游戏就要重新计算一次数据。

  2. IAT HOOK
    在外挂中的应用:可以用于游戏加速,Hook获取时间的函数然后增大两次获取之间的差值,就可以使游戏获得更高的FPS ,进而达到加速的目的。
    检测方法:查看IAT判断是否被HOOK

  3. 虚函数HOOK
    对于虚函数表的HOOK我们可以知道程序在一个动作前后调用了哪些虚函数,进而来判断函数的作用。
    检测方法:查看调试时和静态时的虚函数表地址是否相同。

  4. Detour库的使用
    Detour库的三个关键概念:
    Target函数:即我们准备Hook的函数
    Trampoline函数:即跳板函数,这个函数负责执行由于Hook导致Target函数函数中未被执行的指令,一般为push ebp mov ebp,esp
    Detour函数:即我们Hook后要执行的函数。
    核心接口:

  5. SEH HOOK
    基本原理:在指定位置设置硬件断点,然后再设置顶层异常处理,这样当运行到指定位置时就会触发异常,改变代码流到自定义的顶层异常处理函数。
    关键函数:OpenThread();
    SetUnhandledExceptionFilter();
    SetThreadContext();
    检测方法:查看顶层异常处理函数,通过GetThreadConText()来检查Drx寄存器的值。

  6. VEH HOOK
    与SEH HOOK 类似,但通过AddVectoredExceptionHandler()l来注册函数。
    检测方法:由于无法直接得到VEH双向链表的地址,所以我们可以通过注册一个空的VEH函数来得到链表的地址,遍历得到所有的VEH函数。

5.动态保护技术

  1. 反dump技术
    0x00. 修改内存页属性为PAGE_NOACCESS,当程序自己需要执行时再通过异常处理将属性改回来。
    0x01. 抹掉PE头,但无法阻止自定义的dump

《游戏外挂攻防艺术》学习笔记【一】相关推荐

  1. 【web编程技术学习笔记】因特网与万维网简介

    目录 Client客户端 Server服务器端 TCP/IP五层协议 IP 查看IP地址的的两种方法 TCP URL 样式一 样式二 DNS URL&DNS HTTP 与因特网有关的组织 IE ...

  2. 程序员编程技术学习笔记

    程序员编程技术学习笔记     看july的博客也有好久了,一直没能好好整理一下自己的学习笔记,开了博客之后更加愿意好好整理一番了.其中不免有些内容在july那里可以找到原文,但是更多的加入了我个人的 ...

  3. JAVA 网络编程技术学习笔记

    目录 一.网络编程基本概念(了解) 1.1 计算机网络 1.2 网络通信协议 1.2.1什么是网络通信协议 1.2.2 OSI七层协议模型 1.2.3网络协议的分层 1.3数据的封装和解封 1.4 I ...

  4. 《ASP.NET MVC4 WEB编程》学习笔记------Web API 续

    目录 ASP.NET WEB API的出现缘由 ASP.NET WEB API的强大功能 ASP.NET WEB API的出现缘由 随着UI AJAX 请求适量的增加,ASP.NET MVC基于Jso ...

  5. java网络编程技术学习笔记(b站【狂神说Java】网络编程实战讲解)

    b站视频链接:[狂神说Java]网络编程实战讲解 文章目录 网络编程 1.1.概述 1.2.网络通信的要素 1.3.IP 1.4.端口 1.5.通信协议 1.6.TCP 文件发送 1.7.UDP 1. ...

  6. SpringBoot整合第三方技术学习笔记(自用)

    SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...

  7. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  8. ssm 转发请求_千呼万唤!阿里内部终于把这份SSM框架技术学习笔记分享出来了...

    SSM SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项 ...

  9. 【C#编程基础学习笔记】6---变量的命名

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...

  10. 【C#编程基础学习笔记】4---Convert类型转换

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...

最新文章

  1. MySQL 遇到的问题
  2. Android下的数据存储与访问、权限
  3. 深度学习项目-人脸表情识别
  4. 算法题目中常见的几种输入小点-gets,cin,scanf,getline,sstream
  5. 版本不见了_王者荣耀复古版本来袭?第四代主宰形象回归!可以给小兵加速
  6. PBRT中的误差舍入管理(浮点运算)
  7. python学习之dict的items(),values(),keys()
  8. 在Ubuntu搭建网站环境问题记录
  9. php有空语句吗?,php是空还是空?
  10. excel怎么启用宏_利用Excel连接Power BI,实现PPT报告自动输出
  11. word表格分开快捷键_Word用鼠标和快捷键拆分单元格与合并单元格
  12. 介于上海与江苏的地铁小户型
  13. 国产CAD制图软件中怎么设置两点标注?
  14. python案例2-简易网吧系统
  15. matlab怀特检验,(求助)Eviews中的怀特检验,怎样确定存在异方差?
  16. CUMT 1031 Order
  17. leetcode/求幂集,所有子集
  18. PYTHON----输出指定的英文字母
  19. linux刀片服务器,惠普推出简化刀片服务器Linux管理软件包
  20. C币怎么获得呀,只下一个profili V 哭哭

热门文章

  1. (二)、JavaScript页面访问记录(History 对象)
  2. Applilet2 for V850ES/Fx3生成代码
  3. 如何彻底删除hao123主页?
  4. [模板匹配霍夫变换]——模板匹配分析、霍夫变换分析
  5. ElementUI的表格换行符失效、不换行
  6. 微信小程序输入框大全
  7. Java多线程的使用方法,Thread,Runnable
  8. 关于MSTAR的IO初始化
  9. Python爬虫爬取Twitter视频、文章、图片
  10. cocos2d-x 添加自定义字体---中文,英文