L o a d i n g . . .
主打一个C++
文章详情

C++驱动编程内存加载驱动过程以及被加载驱动条件配置和注意弊端

Posted on 2018-07-14 11:16:38 by 主打一个C++

内存加载驱动过程:

  1. 读入.sys驱动文件(任意方式获取文件二进制数据)
  2. 基本条件判断是否pe文件以及其他必备信息,防止后续操作导致gg
  3. 获取文件数据大小,申请非分页内存得到内存指针
  4. 按照内存对齐方式拉伸每个节点
  5. 修复IAT,导入表
  6. 修复重定位表
  7. 定义入口函数指针赋值为新的内存地址的pe入口点
  8. 启动入口,加载完成

被加载驱动条件配置:(部分非必须)

高级:

  1. 使用调试库:否

C/C++:

  1. Spectre Mitigation:Disabled
  2. 安全检查:禁用安全检查

链接器:

  1. 入口点:自行重写,注意启动传参
  2. 生成Windows元数据:否(AWINMD:No)
  3. 生成调试信息:否

Driver Settings->General:

  1. Target os Version:Windows 10 or higher(需求调整)
  2. Target Platform:Windows Driver

省略更多非重要配置......

被加载驱动注意弊端:

  1. 重写驱动入口点
  2. 不可seh异常,触发gg(有需要需自行设置页面异常拦截)
  3. 一堆........

测试代码: 下载

*转载请注明出处:原文链接:https://cpp.vin/page/81.html

作者近期文章
  • 随手笔记
  • 主打一个C++   2025-01-11 20:02:01
  • 都2000000025年了。还有不能随意访问guthub的,仔细看。在国内其实是可以正常访问的,gfw并没屏蔽。这里给出其中一个简单直接的方法稳定访问。1. 随便百度一个”dn
提示
×
确定
数据库执行: 8次 总耗时: 0.01s
页面加载耗时: 



wechat +447752296473
wechat cpp-blog