32位/64位WINDOWS驱动之-突破进程保护映射的方法进行跨进程读内存2

2023-11-18

32位/64位WINDOWS驱动之-突破进程保护映射的方法进行跨进程读内存2

一、在过保护读写筛选器中添加 读写驱动2.c

驱动层
代码如下:

#include <ntifs.h>



//OK 测试通过 遇到2个坑 
//第1个坑 sizeof(PKAPC_STATE)是指针 得改结构大小 sizeof(KAPC_STATE)
//第2个坑 KeStackAttachProcess后 进程空间变化了 得用内核内存 中转 BUF缓冲区
//Address为目标进程的内存地址
//Buffer //当前进程的地址
BOOLEAN KReadProcessMemory2(IN PEPROCESS Process, IN PVOID Address, IN UINT32 Length, IN PVOID UserBuffer)
{
   

	KAPC_STATE apc_state;
	RtlZeroMemory(&apc_state, sizeof(KAPC_STATE));
	//1为UserBuffer 创建 MDL内存描述
	//创建MDL来读取内存 UserBuffer=0x200000
	DbgPrint("yjx:sys64  %s 行号=%d  (Process=%p,Address=%p,Length=%d,UserBuffer=%p)" , __FUNCDNAME__, __LINE__ ,Process,Address,Length,UserBuffer);
	PMDL g_pmdl = IoAllocateMdl(UserBuffer, Length, 0, 0, NULL); //8 可以修改成 要读取的内存大小
	if (!g_pmdl)
	{
   
		return FALSE;
	}

	//2标记为非分页内存
	MmBuildMdlForNonPagedPool(g_pmdl);
	//3锁定 映射用户内存 到 内核内存 0x100000
	unsigned char* Mapped = (unsigned char*)MmMapLockedPages(g_pmdl, KernelMode); //UserMode
	if (!Mapped)
	{
    //映射失败
		IoFreeMdl(g_pmdl);
		return FALSE;
	}
	//成功 映射了 地址
	//切换到 目标进程
	KeStackAttachProcess((PVOID)Process, &apc_state);
	//判断目标地址是否可以访问 UserBuffer不可访问 Mapped可以访问
	BOOLEAN dwRet = MmIsAddressValid(Address);
	if (dwRet)</
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

32位/64位WINDOWS驱动之-突破进程保护映射的方法进行跨进程读内存2 的相关文章

随机推荐

  • Vue使用Element-ui表单发送数据和多张图片到后端

    在做项目的时候遇到一个问题 前端需要上传表单到后端 表单数据包括文本内容和图片 后端我用的是Nodejs 效果类似下图 前端需要向后端传商品名称 价格 描述 商品图片 前端准备 利用Element ui中的表单功能和上传功能 将upload
  • 【面试八股文】每日一题:谈谈你对IO的理解

    谈谈你对IO的理解 每日一题 Java核心 谈谈你对对IO的理解 面试八股文 1 Java基础知识 Java IO Input Output 是Java编程语言中用于处理输入和输出的一组类和接口 它提供了一种在Java程序中读取和写入数据的
  • Web前端部署的几种方法和步骤

    随着互联网技术的发展和普及 Web前端开发已成为当今最重要和最具前景的技能之一 与此同时 如何将 Web 前端部署到服务器上已成为一个必不可少的技能 本文将介绍 Web 前端部署的几种方法和步骤 一 前置准备 在开始 Web 前端部署之前
  • linux安装SecureCRT安装教学

    linux安装SecureCRT安装教学 列如 Anolis OS8 6 安装SecureCRT8 0 目录 系列文章目录 linux安装SecureCRT安装教学教学 前言 一 securecrt安装 二 使用步骤 1 创建securec
  • verdi中如何查看force信号信息

    转载 verdi中如何查看force信号信息 骏的世界 lujun org cn 在仿真中 我们会有对信号进行force的操作 从而实现某些特定的功能 但是在仿真波形中 不能直接从波形上看出 这些信号的驱动 是因为前级电路的驱动 还是因为f
  • 为何软文营销能够做到良好的品牌推广效果

    如今的互联网已经不再是十多年前那样只能看看文字 图片 而是一个包罗万象的大集合 其中内容之丰富 已经开始有代替报纸 电视 广播等传统的信息传播途径 因此 越来越多的人选择了互联网 在互联网上的推广效果是越来越给力 面对这么大的宣传平台 很多
  • 三分钟,教你3种前端埋点方式!

    大厂技术 高级前端 Node进阶 点击上方 程序员成长指北 关注公众号 回复1 加入高级Node交流群 只有了解用户 我们才能服务好用户 而最接近用户的我们 自然要承担起更多的责任 那么在一个企业中 我们要如何去了解用户呢 最直接有效的方式
  • 警告: Unable to find required classes (javax.activation.DataHandler and javax.mail

    在调试Axis1 4访问WebService服务时 出现以下警告 警告 Unable to find required classes javax activation DataHandler and javax mail internet
  • sip线路对接_线路调度一二三

    使用呼叫中心系统 在进行外呼业务时 坐席的呼出呼叫 最终需要通过各种线路进行呼出 根据线路类别不同 目前常见的有数字中继线 SIP中继对接线路 IMS接入线路 FXO大号模拟线 卡线 API对接线路 除自有线路外 根据供应商类型 主要有各地
  • 【Linux中shell脚本】Linux中shell脚本回车换行问题

    背景 windows下编辑shell脚本 报错 syntax error near unexpected token r 问题产生原因 因为windos与linux换行符不同导致 notepad 中 视图 gt 显示符号 gt 显示所有符号
  • Qt技术重绘QtableView方法

    在项目过程中需要在列表中用图形显示磁盘的使用情况 这用Qt自身的QTableview控件不能完全实现 需要用委托进行重绘 创建一个委托类继承QItemDelegate类 然后实现void paint QPainter painter con
  • 研报精选230410

    目录 行业230410西南证券 医药行业2023年4月投资月报 看好创新药和中药行情 行业230410国信证券 汽车行业4月投资策略 3月新能源乘用车批发销量预计同比增长32 持续关注板块年报季报行情 行业230410西南证券 医药行业周报
  • java------int=20是存在堆里还是栈里

    如果方法里的局部变量 就会存在栈帧里的局部变量表中 如果是成员变量则存在于堆中 它属于int类的一个实例 存放在堆中开辟的空间
  • 【Mo 人工智能技术博客】图卷积网络概述及其在论文分类上的应用

    近年来 深度学习在计算机视觉 自然语言处理等领域大放异彩 这些领域所面对的数据都是结构化的 如图像 音频 文本等 它们内部都有明确的排列规则 结构化的数据由于具有这些确定的规则而方便处理 但是在现实生活中 非结构化的关系数据才是主流 我们无
  • Ubuntu 18.04换国内源 中科大源 阿里源 163源 清华源

    国内有很多Ubuntu的镜像源 包括阿里的 网易的 还有很多教育网的源 比如 清华源 中科大源 我们这里以中科大的源为例讲解如何修改Ubuntu 18 04里面默认的源 编辑 etc apt sources list文件 在文件最前面添加以
  • 华为OD机试 - 跳格子1(Java)

    题目描述 小明和朋友玩跳格子游戏 有 n 个连续格子 每个格子有不同的分数 小朋友可以选择以任意格子起跳 但是不能跳连续的格子 也不能回头跳 给定一个代表每个格子得分的非负整数数组 计算能够得到的最高分数 输入描述 给定一个数列 如 1 2
  • 3D游戏设计大作业

    Unity大作业 粒子系统效果 一 前言 1 此篇文章记录了2022年第二学期中山大学软件工程3D游戏与编程的大作业 本次大作业可选择范围众多 最终我选择了粒子系统效果作为了本次大作业的主题 2 一个粒子系统可以模拟并渲染许多称为粒子的小图
  • CRC校验总结

    事实上网上很多CRC校验算法 在接收端进行CRC校验时 余数不为零 这往往是因为CRC校验算法本身是有问题的 但不妨碍我们进行校验 接收端可以对需要校验的字段带入CRC校验算法 计算得到校验值 并与发送数据中的校验值进行比较 如果两者相等
  • 生信技能树R语言学习

    一 数据类型和向量 1 数据类型 1 1 判断数据类型class 1 2 按Tab键自动补全 1 3 数据类型的判断和转换 1 is 族函数 判断 返回值为TRUE或FALSE is numeric 123 is character a i
  • 32位/64位WINDOWS驱动之-突破进程保护映射的方法进行跨进程读内存2

    32位 64位WINDOWS驱动之 突破进程保护映射的方法进行跨进程读内存2 一 在过保护读写筛选器中添加 读写驱动2 c 驱动层 代码如下 include