当前位置: 首页 > news >正文

44.实现管理HOOK点的链表对象

上一个内容:43.实现HOOK接管寄存器数据

以 43.实现HOOK接管寄存器数据 它的代码为基础进行修改

首先创建一个类

这里创建的名为HOOKPOINT.h

HOOKPOINT.cpp文件里面的内容

#include "pch.h"
#include "HOOKPOINT.h"HOOKPOINT::HOOKPOINT()
{
}HOOKPOINT::HOOKPOINT(LPVOID _adr, HOOKBACK _hbk, HOOKPOINT* _BackP, HOOKPOINT* _NextPoint):Address(_adr), DestCall(_hbk), BackPoint{ _BackP }, NextPoint{ _NextPoint }
{
}HOOKPOINT* HOOKPOINT::AddPonit(LPVOID _adr, HOOKBACK _hbk)
{NextPoint = new HOOKPOINT(_adr, _hbk, this);return NextPoint;
}HOOKPOINT* HOOKPOINT::FindPoint(LPVOID _adr)
{PHOOKPOINT _point = this;do {if (_point->Address == _adr)return this;_point = _point->NextPoint;}while(_point);return nullptr;
}

HOOKPOINT.h文件中的内容

#pragma oncetypedef struct CPUINFO {unsigned eflags;unsigned edi;unsigned esi;unsigned ebp;unsigned esp;unsigned ebx;unsigned edx;unsigned ecx;unsigned eax;unsigned eip;
}*PCPUINFO;
typedef bool (*HOOKBACK)(PCPUINFO);
typedef class HOOKPOINT
{LPVOID Address;HOOKBACK DestCall;HOOKPOINT* NextPoint;HOOKPOINT* BackPoint;
public:HOOKPOINT();HOOKPOINT(LPVOID, HOOKBACK, HOOKPOINT*, HOOKPOINT* _NextPoint = NULL);HOOKPOINT* AddPonit(LPVOID, HOOKBACK);HOOKPOINT* FindPoint(LPVOID);
}*PHOOKPOINT;

http://www.lryc.cn/news/390691.html

相关文章:

  • Unity小知识
  • 【Jupyter Notebook与Git完美融合】在Notebook中驾驭版本控制的艺术
  • Python开发者必看:内存优化的实战技巧
  • Golang | Leetcode Golang题解之第214题最短回文串
  • 【ajax实战08】分页功能
  • 基于Hadoop平台的电信客服数据的处理与分析②项目分析与设计---需求分析-项目场景引入
  • debug-mmlab
  • 年轻人为什么那么爱喝奶茶?
  • 手写数组去重
  • Firewalld 防火墙
  • Hive查询优化 - 面试工作不走弯路
  • 【VUE3】uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)
  • 容器部署rabbitmq集群迁移
  • DP:背包问题----0/1背包问题
  • React antd umi 监听当前页面离开,在菜单栏提示操作
  • 在 Windows PowerShell 中模拟 Unix/Linux 的 touch 命令
  • 鸿蒙NEXT
  • VUE3-Elementplus-form表单-笔记
  • Analyze an ORA-12801分析并行 parallel 12801 实际原因
  • 高级运维工程师讲述银河麒麟V10SP1服务器加固收回权限/tmp命令引起生产mysql数据库事故实战
  • 昇思25天学习打卡营第09天|sea_fish
  • flutter开发实战-Charles抓包设置,dio网络代理
  • Elasticsearch:Runtime fields - 运行时字段(二)
  • Python正则表达式的入门用法(上)
  • Audio Processing Graphs 管理 Audio Units
  • 欧盟,又出了新规-通用充电器新规通用充電器的 RED 修正案如何办理?
  • thinkphp6/8 验证码
  • Ubuntu 22.04 LTS 上安装 MySQL8.0.23(在线安装)
  • 如何选择优质模型?SD3性能究竟如何?
  • Linux上脚本备份数据库(升级版)