规范:Windows 7 x64,Visual C++
目标:我正在尝试从一个示例程序(例如,calc.exe)中获取远程PEB。我找到了proc ID,并打开了一个进程句柄,具有所有良好的权限。现在,我已经开始编写一个类来使用PROCESS_BASIC_INFORMATION从流程中检索PEB的位置。
Problem:我在其他地方发现了几个帖子,这些帖子似乎表明,NtQueryInformationProcess变成了垃圾,其中一篇文章提出了一种动态运行时--将NtQueryInformationProcess链接到ntdll.dll之外的方法。但是,我认为这将是不稳定的长期(MS可以删除NtQueryInformationProcess明天),没有广泛的错误处理。
这个想法后来在这条线中得到了实现,然后Mike2343建议人们应该“使用其他方法”。
问题:不涉及NtQueryInformationProcess的远程进程的PEB定位的另一种方法是什么?
感谢任何花时间看这个的人。
发布于 2012-07-30 23:40:56
方法的结果是:
我偷了很多所有这些代码,把它修好了64位。我花了大量的时间来研究与所有不同的五花八门和结构相关的标头文档。我还遇到了一个关于PE32+格式的问题,在这个问题上,jcopenha很好地告诉了我一些我可能面临的问题。在考虑了这些问题之后,我有了一个功能正常的程序,它能够获得所有DLL的列表,以及它们各自的函数,通过一个可执行文件以及它们的相对地址加载进来。
回想起来,我认为我对我试图做的事情没有很好的把握。我想我应该从内存中读取一个进程,并找到与PEB相关的结构或其他东西(后来我发现了PEB中信息的图像头和类似的帐户)。虽然这可能是可能的,但我现在拥有的是一个脱机示例,它读取exe文件并为我工作。
https://stackoverflow.com/questions/11593549
复制相似问题