jjzjj

NtQueryInformationProcess

全部标签

windows - 如何获取 NtQueryInformationProcess 所需的缓冲区大小?

NtQueryInformationProcess的ReturnLength参数说明如下:ReturnLengthApointertoavariableinwhichthefunctionreturnsthesizeoftherequestedinformation.Ifthefunctionwassuccessful,thisisthesizeoftheinformationwrittentothebufferpointedtobytheProcessInformationparameter,butifthebufferwastoosmall,thisistheminimumsize

c++ - 通过 FS 寄存器访问衍生进程的 TIB?

我想访问衍生进程的TIB(我使用CreateProcessW成功创建了进程)。我通过以下方式获得了指向生成进程的TIB的指针:GetThreadContext(当然有权限设置)访问pContext.SegFs像这样格式化这个值:(ldtSel.HighWord.Bits.BaseHi(我不认为这是必要的)。格式后我剩下的值是一个10位指针。我如何使用这个变量代替fs寄存器来访问线程信息block?我访问它的常规方式通常是这样的:__asm{moveax,fs:[0x30]//PEBmovdwPebBase,eax}不过,用指针变量替换“fs”当然不行,去掉分号还有意想不到的效果。那么我

windows - 用于检测不死进程的 NtQueryInformationProcess 替代方案?

我想检测何时有人在不通知调试器的情况下终止暂停的调试进程。(例如,到达控制台应用程序中的断点,并关闭应用程序的控制台窗口。)进程进入类似僵尸的状态,并且在调试器释放它之前无法进一步交互。当通过NtQueryInformationProcess收集有关进程的信息时,此状态似乎设置了PROCESS_EXTENDED_BASIC_INFORMATION::IsProcessDeleting标志,但标志、结构和函数在MSDN上实际上未记录并标记为“请勿使用”。测试这个标志可靠吗?我可以使用更好的“官方”API吗?(是的,我知道IsProcessDeleting也会在进程正常关闭(惊讶,惊喜)时

c - 从子进程中获取父进程 ID

我使用CreateProcessAPI创建了一个子进程。我需要从子进程中获取父进程的ID。如果我的进程树有一个child和一个孙子。我还需要从孙子那里获取最高父级的进程ID。 最佳答案 您应该使用nativeAPI和GetProcAddress来查找NtQueryInformationProcess的地址。typedefstruct_PROCESS_BASIC_INFORMATION{NTSTATUSExitStatus;PPEBPebBaseAddress;ULONG_PTRAffinityMask;KPRIORITYBasePr

c - 从 32 位进程获取 64 位进程的命令行字符串

下面的代码非常适合我从32位应用程序获取32位进程的命令行字符串,从64位应用程序获取64位进程,从64位应用程序获取32位进程。如果我尝试从32位应用程序使用64位进程,这将会中断。原因是PROCESS_BASIC_INFORMATION和地址大小的结构大小差异。所以这是我的问题-1)processhacker(http://processhacker.sourceforge.net/forums/viewtopic.php?f=15&t=181)中给出的使用wow64函数的建议似乎不起作用并且失败并出现以下错误-NtWow64ReadVirtualMemory64错误:800000

windows - NtQueryInformationProcess 的替代方法来获取命令行

您好,我正在使用NtQueryInformationProcess()在Windows7上检索当前进程的命令行(通过NtQueryInformationProcess()返回的PEB中的RTL_USER_PROCESS_PARAMETERS)。但问题在于,NtQueryInformationProcess函数及其返回的结构是操作系统内部的,并且可能会从一个Windows版本到另一个版本发生变化所以请建议一些相同的替代方案以保持应用程序的兼容性 最佳答案 对于当前进程来说很简单(在用户模式下),只需使用GetCommandLine.对