阅读:1508回复:7
PPEB EPROCESS
在 EPROCESS 中有个指针p指向PEB,而PEB这个结构应该是用户空间的.
(1)在有的时候,在内核中使用p可以获得一些信息 (2)有的时候却不能,例如在DriverEntry中,这是因为对于p而言,其地址是用户空间的地址,如果你 *p 就会stop. 现在的问题是: 给定一个eprocess(用户空间的进程的),如何安全访问 PEB呢,也就是 *p 是安全的. |
|
|
沙发#
发布于:2005-05-19 11:28
在 EPROCESS 中有个指针p指向PEB,而PEB这个结构应该是用户空间的. KeAttachProcess |
|
|
板凳#
发布于:2005-05-19 11:43
[quote]在 EPROCESS 中有个指针p指向PEB,而PEB这个结构应该是用户空间的. KeAttachProcess [/quote] 法帖前就试了,stop!了 |
|
|
地板#
发布于:2005-05-19 12:06
[quote][quote]在 EPROCESS 中有个指针p指向PEB,而PEB这个结构应该是用户空间的. KeAttachProcess [/quote] 法帖前就试了,stop!了 [/quote] 怎么用的,在哪里stop了 |
|
|
地下室#
发布于:2005-05-19 12:13
[quote][quote][quote]在 EPROCESS 中有个指针p指向PEB,而PEB这个结构应该是用户空间的. KeAttachProcess [/quote] 法帖前就试了,stop!了 [/quote] 怎么用的,在哪里stop了 [/quote] 我打开了一个普通用户进程 NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath ) { ...... NtRtn = ZwOpenProcess(&OpenProcessHandle,READ_CONTROL ,&Objattr,&ClientId); } if(NT_SUCCESS(NtRtn)) { KeAttachProcess(OpenProcessHandle); ... KeDetachProcess() ; } } |
|
|
5楼#
发布于:2005-05-23 08:54
如果是确定上下文还可以
用ProbeForRead 如果非确定上下文,需要地址映射 IoAllocateMdl MmProbeAndLockPages MmGetSystemAddressForMdlSafe |
|
|
6楼#
发布于:2005-05-23 09:16
系统进程是没有PEB的. |
|
|
7楼#
发布于:2005-05-25 09:55
[quote] 系统进程是没有PEB的. [/quote] PEB对于System 和Idle有用吗,它们进用户区吗,其实他们都是OS造出来的,叫他们进程只是挂个名而已,它们有用户地址空间吗? 2003 server sp1下载地址 http://www.microsoft.com/downloads/details.aspx?familyid=22CFC239-337C-4D81-8354-72593B1C1F43&displaylang=en |
|
|