能力值:
( LV2,RANK:10 )
|
-
-
2 楼
谢谢楼主的共享,好像又点复杂
|
能力值:
( LV8,RANK:130 )
|
-
-
3 楼
//EPROCESS偏移0x174为ImageFileName(进程名)
PsGetProcessImageFileName
|
能力值:
( LV12,RANK:1010 )
|
-
-
4 楼
来个判断操作系统,再得到相应的偏移呀, 硬编码。。。
或者动态获取这些变量的偏移地址也不错呀.
eg: PsLookupProcessByProcessId--> 4[XP], 8 [WIN2K] --> "System" --> ImageFileName offset...
其他的也可以动态获取嘛~ 炉子帖的那个API也不错~
写的很好哦.分享学习心得就要顶~~
|
能力值:
( LV13,RANK:1050 )
|
-
-
5 楼
,写得不错。顶
|
能力值:
( LV5,RANK:60 )
|
-
-
6 楼
Because I don't know what's WDM two months ago...
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
|
能力值:
(RANK:1060 )
|
-
-
8 楼
[quote=sudami;407270]来个判断操作系统,再得到相应的偏移呀, 硬编码。。。
或者动态获取这些变量的偏移地址也不错呀.
eg: PsLookupProcessByProcessId--> 4[XP], 8 [WIN2K] --> "System" --> ImageFileN...[/quote]
in DriverEntry
call PsGetCurrentProcess
Get offset of "System"
|
能力值:
( LV12,RANK:1010 )
|
-
-
9 楼
嗯,在3*PAGE_SIZE范围内搜索当前EPROCESS,得到System的Offset.
呵呵.这个也不错~~
00000: ULONG GetProcessNameOffset ( void )
00001: {
00002: PEPROCESS curproc;
00003: int i = 0;
00004:
00005: curproc = PsGetCurrentProcess();
00006: for ( i = 0; i < 3 * PAGE_SIZE; i++ ) {
00007: if( !strncmp( "System", (PCHAR)curproc + i, strlen("System") )) {
00008: return i;
00009: }
00010: }
00011:
00012: return 0;
00013: }
|
能力值:
( LV8,RANK:130 )
|
-
-
10 楼
in DriverEntry->PsGetCurrentProcess
PsInitialSystemProcess
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
学习.....
|
|
|