HookSuccess 发表于 2021-1-6 11:08:18

Dump驱动文件

在驱动里 我通过 ZwQuerySystemInformation枚举到想到的驱动文件 CI.dll得到起始地址 和 size。然后我用RtlCopyMemory 想把这个镜像拷贝到我的内存中发生了蓝屏0x50发生位置的内存地址是在镜像中的 居然dd查看是个无效地址 这是怎么回事   拷贝内核文件就不会出现这个问题

Tesla.Angela 发表于 2021-1-20 04:36:06

这是最经典的内核坑爹问题之一。

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

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

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

HookSuccess 发表于 2021-1-20 17:30:20

Tesla.Angela 发表于 2021-1-20 04:36
这是最经典的内核坑爹问题之一。

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

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

Tesla.Angela 发表于 2021-1-21 01:45:58

HookSuccess 发表于 2021-1-20 17:30
是的实在没想到因为是导入表内存无效   后来看了下导入表竟然在INIT节   不知为什么我自己写的驱 ...

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

但是IMAGE_DIRECTORY_ENTRY_IAT所在的内存肯定是有效的,除非你的驱动没有导入表。
页: [1]
查看完整版本: Dump驱动文件