如何获取进程/目标对象的全路径?
2016-04-10 01:37
781 查看
PID->eprocess->KeStackAttachProcess->ZwQueryInformationProcess->ProcessImageFileName->ZwCreateFile
->ObReferenceObjectByHandle->RtlVolumeDeviceToDosName
->ZwQueryInformationFile
如何获取目标对象的全路径?
Handle
ObReferenceObjectByHandleIoQueryFileDosDeviceName
ObReferenceObjectByHandleObQueryNameString(强删文件例子里)
IRP查询(FILEMON4.34中FilemonQueryFile函数)
FltGetName(minifilter)
我知道的方法:
参考小伟同学的《伪造进程初探》一文
进程全路径:
1.EPROCESS->ImageFileName(进程名)
2.EPROCESS->SeAuditProcessCreationInfo->ImageFileName
3.EPROCESS->SectionObject->Segment->ControlArea->FilePointer->FileName
4.EPROCESS->PEB->ProcessParameters->ImagePathName
5.EPROCESS->PEB->ProcessParameters->CommandLine
6.EPROCESS->PEB->ProcessParameters->WindowTitle
7.EPROCESS->PEB->Ldr->InLoadOrderLinks->FullDllName
8.EPROCESS->PEB->Ldr->InMemoryOrderLinks->FullDllName(进程名)
其实一个从EPROCESS->VADRoot->RightChild->ControlArea->FilePointer->FileName获取路径的。
但因为这里面的ControlArea和方法3的ControlArea是同一个,所以可以忽略了。
一、EPROCESS中:
1、EPROCESS-->ImageFileName(很常用,冰刃获取进程名的地方)
2、EPROCESS-->SeAuditProcessCreationInfo->ImageFileName(任务管理器获取进程名的地方,NtQueryInformationProcess就是从这里获取进程名的)
3、EPROCESS->SectionObject->Segment->ControlArea->FileObject->FileName(RKU获取进程名的方法)
4、VAD(记录用户空间内存分配情况的数据结构,里面当然有进程的exe模块)
二、PEB中:
1、PEB-->ProcessParameters-->ImagePathName
2、PEB-->ProcessParameters-->CommandLine
3、PEB-->ProcessParameters-->WindowTitle(这个地方比较奇怪,如果双击的是exe的快捷方式,则记录的是快捷方式的路径,还是一并改掉的好)
4、PEB-->LDR-->InLoadOrderModuleList->第一个结构->FullDllName
5、PEB-->LDR-->InLoadOrderModuleList->第一个结构->BaseDllName
6、PEB-->LDR-->InMemoryOrderModuleList->第一个结构->FullDllName(此处的BaseDllName貌似为NULL,就不管它了)
(PEB-->LDR-->InInitializationOrderModuleList这个表里貌似没有exe模块,也不管它了)
->ObReferenceObjectByHandle->RtlVolumeDeviceToDosName
->ZwQueryInformationFile
如何获取目标对象的全路径?
Handle
ObReferenceObjectByHandleIoQueryFileDosDeviceName
ObReferenceObjectByHandleObQueryNameString(强删文件例子里)
IRP查询(FILEMON4.34中FilemonQueryFile函数)
FltGetName(minifilter)
我知道的方法:
参考小伟同学的《伪造进程初探》一文
进程全路径:
1.EPROCESS->ImageFileName(进程名)
2.EPROCESS->SeAuditProcessCreationInfo->ImageFileName
3.EPROCESS->SectionObject->Segment->ControlArea->FilePointer->FileName
4.EPROCESS->PEB->ProcessParameters->ImagePathName
5.EPROCESS->PEB->ProcessParameters->CommandLine
6.EPROCESS->PEB->ProcessParameters->WindowTitle
7.EPROCESS->PEB->Ldr->InLoadOrderLinks->FullDllName
8.EPROCESS->PEB->Ldr->InMemoryOrderLinks->FullDllName(进程名)
其实一个从EPROCESS->VADRoot->RightChild->ControlArea->FilePointer->FileName获取路径的。
但因为这里面的ControlArea和方法3的ControlArea是同一个,所以可以忽略了。
一、EPROCESS中:
1、EPROCESS-->ImageFileName(很常用,冰刃获取进程名的地方)
2、EPROCESS-->SeAuditProcessCreationInfo->ImageFileName(任务管理器获取进程名的地方,NtQueryInformationProcess就是从这里获取进程名的)
3、EPROCESS->SectionObject->Segment->ControlArea->FileObject->FileName(RKU获取进程名的方法)
4、VAD(记录用户空间内存分配情况的数据结构,里面当然有进程的exe模块)
二、PEB中:
1、PEB-->ProcessParameters-->ImagePathName
2、PEB-->ProcessParameters-->CommandLine
3、PEB-->ProcessParameters-->WindowTitle(这个地方比较奇怪,如果双击的是exe的快捷方式,则记录的是快捷方式的路径,还是一并改掉的好)
4、PEB-->LDR-->InLoadOrderModuleList->第一个结构->FullDllName
5、PEB-->LDR-->InLoadOrderModuleList->第一个结构->BaseDllName
6、PEB-->LDR-->InMemoryOrderModuleList->第一个结构->FullDllName(此处的BaseDllName貌似为NULL,就不管它了)
(PEB-->LDR-->InInitializationOrderModuleList这个表里貌似没有exe模块,也不管它了)
相关文章推荐
- maven查找依赖方法
- 【1】mysql系统级操作
- frame和iframe的使用与总结
- C++ 进阶必备
- 第一次接到的任务
- Devik 进程,linux 进程,线程的区别
- 实时应用监控平台cat——服务器启动流程(一)
- 异步读
- swift控制流
- 欢迎使用CSDN-markdown编辑器
- WebRTC视频流渲染中插入图片帧
- YouKu iOS笔试题二
- Run Vanilla OS X El Capitan, Yosemite or Mavericks in VirtualBox 5.0.10 on a Windows Host
- UI测试
- js模块化之require.js
- 实现正则匹配,匹配模式
- install-plugin-submit
- YouKu iOS笔试题一
- Linux下安装并配置SSH服务
- 如何获得短名的长名?