阅读:1548回复:6
一个驱动程序运行时,如何驱动程序如何自己知道是那个应用程序调用的自己??
一个驱动程序运行时,如何驱动程序如何自己知道是那个应用程序调用的自己??
|
|
最新喜欢:![]()
|
沙发#
发布于:2004-07-15 11:02
取当前进程id啊!
|
|
板凳#
发布于:2004-07-16 15:17
问题是ddk中的
PEPROCESS ps = IoGetCurrentProcess( );对PEPROCESS没有描述啊。。 |
|
|
地板#
发布于:2004-07-16 16:07
取当前进程id啊! 看你的driver的类型了。 如果你的driver是在上一级或更上一级driver的系统线程中工作,当前进程就是系统进程。通过这种方法也就无法获得用户进程。 |
|
地下室#
发布于:2004-07-16 16:35
问题是ddk中的 一个未公开的结构。可以看作是PROCESS OBJECT的指针。 |
|
5楼#
发布于:2004-07-17 14:57
在windbg中用kb命令看调用栈
|
|
6楼#
发布于:2004-07-27 00:22
找出名字偏移,名字偏移可以通过查找system process进程的PEPROCESS,得出,具体如下
在某一driverentry调用如下 #define SYSNAME "System" ULONG GetProcessNameOffset(VOID) { PEPROCESS curproc; int i; curproc = PsGetCurrentProcess(); // // Scan for 12KB, hoping the KPEB never grows that big! // for( i = 0; i < 3*PAGE_SIZE; i++ ) { if( !strncmp( SYSNAME, (PCHAR) curproc + i, strlen(SYSNAME) )) { return i; } } // // Name not found - oh, well // return 0; } |
|
|