c – 在Win 7中从远程进程获取PEB

规格:
Windows 7 x64,Visual C

目标:我正在尝试从示例程序(例如calc.exe)获取远程PEB.我找到了proc ID,并且我已经打开了一个具有所有良好权限的流程句柄.我现在开始编写一个类,使用PROCESS_BASIC_INFORMATION从进程中检索PEB的位置.

问题:我在其他地方发现了几个帖子似乎表明NtQueryInformationProcess在MS上变成了狗屎.一篇文章提出了一种从ntdll.dll中动态运行时链接NtQueryInformationProcess的方法.但是,我认为从长远来看这将是不稳定的(MS可能明天删除NtQueryInformationProcess)而不会进行大量的错误处理.

这个想法将在this thread年晚些时候实现,然后Mike2343建议人们应该“使用其他方法”.

问题:找到不涉及NtQueryInformationProcess的远程进程的PEB的另一种方法是什么?

感谢任何花时间看这个的人.

最佳答案 方法我最终使用:

我偷了很多all of this code并将其修复为64位.我花了很多时间围绕着与所有不同的headersstructs相关的various文件.我还遇到了一个关于PE32+ format的问题,jcopenha非常友好地启发了我可能遇到的一些问题.在考虑到这些问题之后,我有一个功能正常的程序,它能够获得所有DLL及其各自函数的列表以及可执行文件及其相对地址.

回想起来,我认为我没有很好地处理我试图做的事情.我认为我认为我将在一个内存过程中读取并找到PEB相关的结构或某些东西(后来我发现图像标题等在PEB中记录信息).虽然这可能是可能的,但我现在拥有的是一个脱机示例,它读取exe文件并为我工作.

点赞