zoukankan      html  css  js  c++  java
  • 反模拟类游戏外挂 转

    https://bbs.pediy.com/thread-178926.htm

    普通模式调用SendMessage、PostMessage,增强模式调用keybd_event,mouse_event、 SendInput发送键盘鼠标消息。只要HOOK 内核层的NtUserPostThreadMessage、NtUserPostMessage、NtUserMessageCall、NtUserSendInput这几个API,并在其中判断发送的目的地址是否为我们要保护的进程就行了。附件中代码使用Hook KiFastCallEntry的方式Hook NtUserPostThreadMessage、NtUserPostMessage、NtUserMessageCall、NtUserSendInput这几个内核API。

    比较常用的方式,很多游戏辅助用的就是这种方式。因为是操作类驱动中的函数,所以能同时兼容PS/2和USB的键盘鼠标模拟,被按键精灵、游戏辅助广泛使用。它直接调用KeyboardClassServiceCallback、MouseClassServiceCallback。这两个函数是Windows键盘鼠标端口驱动(Kbdhid.sys、i8042prt.sys、mouclass.sys、mouhid.sys)在获得键盘鼠标硬件输入后往上传递给类驱动(Kbdclass.sys、mouclass.sys)的两个回调函数。

    若是键盘鼠标类驱动和端口驱动中有层过滤驱动(eaps2kbd),则需回溯多个栈帧(ebp+n)查找系统的键盘鼠标端口驱动。附件中代码使用Call Hook替换键盘鼠标回调。kbdclass.sys驱动中KeyboardClassServiceCallback函数的反汇编代码如下:

  • 相关阅读:
    Tomcat 8.5 添加https认证
    常用服务的搭建、配置及优化
    Linux基础知识整理
    在CentOS-6系统中二进制安装MySQL-5.6
    搭建本地yum源仓库
    Redis-请慎用String类型
    Redis AOF日志备份原理
    MySQL 输入查询
    MySQL 命令行连接选项
    感思-最好的优化就是减少数据量!
  • 原文地址:https://www.cnblogs.com/enych/p/12216581.html
Copyright © 2011-2022 走看看