紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 1773|回复: 3

Dump驱动文件

[复制链接]

8

主题

47

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

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

854

主题

3481

帖子

2

精华

管理员

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

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

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

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

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

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

8

主题

47

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

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

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

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

854

主题

3481

帖子

2

精华

管理员

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

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

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


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

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

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2024-4-24 09:44 , Processed in 0.023815 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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