找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 2287|回复: 3

Dump驱动文件

[复制链接]

8

主题

39

回帖

0

精华

铜牌会员

积分
63
发表于 2021-1-6 11:08:18 | 显示全部楼层 |阅读模式
在驱动里 我通过 ZwQuerySystemInformation  枚举到想到的驱动文件 CI.dll  得到起始地址 和 size  。然后我用RtlCopyMemory 想把这个镜像拷贝到我的内存中  发生了蓝屏  0x50  发生位置的内存地址  是在镜像中的 居然dd查看是个无效地址 这是怎么回事   拷贝内核文件就不会出现这个问题

856

主题

2630

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36108
发表于 2021-1-20 04:36:06 | 显示全部楼层
这是最经典的内核坑爹问题之一。

IMAGE范围内的内存不一定都是有效的,因为有些节被标记为“加载后可抛弃”。

你可以去读取PE文件,确认哪些节被标记为“加载后可抛弃”了,然后避开读取这些节。

如果是WIN8.1和WIN10系统,那就使用MmCopyMemory来执行复制而避免蓝屏。

8

主题

39

回帖

0

精华

铜牌会员

积分
63
 楼主| 发表于 2021-1-20 17:30:20 | 显示全部楼层
Tesla.Angela 发表于 2021-1-20 04:36
这是最经典的内核坑爹问题之一。

IMAGE范围内的内存不一定都是有效的,因为有些节被标记为“加载后可抛弃 ...

是的  实在没想到  因为是导入表内存无效   后来看了下  导入表竟然在INIT节   不知为什么  我自己写的驱动  编译以后调用的call 都是E8 而不是 那种call IAT的  难道是编译选项的问题吗

856

主题

2630

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36108
发表于 2021-1-21 01:45:58 | 显示全部楼层
HookSuccess 发表于 2021-1-20 17:30
是的  实在没想到  因为是导入表内存无效   后来看了下  导入表竟然在INIT节   不知为什么  我自己写的驱 ...


IMAGE_DIRECTORY_ENTRY_IMPORT所在的内存(在驱动加载完成后)通常是无效的。

但是IMAGE_DIRECTORY_ENTRY_IAT所在的内存肯定是有效的,除非你的驱动没有导入表。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表