能力值:
( LV3,RANK:20 )
|
-
-
2 楼
lkd> dt _EPROCESS
nt!_EPROCESS
+0x1f4 SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO
+0x1f8 Vm : _MMSUPPORT
再看看_SE_AUDIT_PROCESS_CREATION_INFO
lkd> dt _SE_AUDIT_PROCESS_CREATION_INFO
nt!_SE_AUDIT_PROCESS_CREATION_INFO
+0x000 ImageFileName : Ptr32 _OBJECT_NAME_INFORMATION
这不是一回事么 两种情况都是偏移+0x1f4
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢你的解答,我明白了,不过我还有个问题,但如果是这种方法呢//EPROCESS->SectionObject->Segment->ControlArea->FileObject->FileName
代码如下
# tmp=*(PULONG)(pProcess+0x138);
# tmp=*(PULONG)(tmp+0x14);
# tmp=*(PULONG)tmp;
# tmp=*(PULONG)(tmp+0x024);
# FindAndChangeUni(tmp+0x030);
为什么要这样写呢?为什么不可以写成
tmp=*(PULONG)(pProcess+0x138+0x14+00x024.....);
请讲解,谢谢!
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
我觉得是清晰些 起码你知道都加了什么偏移
没区别
此贴包括上贴仅供参考
以你自己使用WINDBG查看
并DBGPRINT打印测试出来的实际结果为准
|
能力值:
( LV9,RANK:280 )
|
-
-
5 楼
上面的写法是错误的,并非简单的数值相加;画出内存模型来,一级一级加指针偏移,容易你理解;区分指针变量地址和指针所指向的内容的区别
|
|
|