jjzjj

NtQueryInformationThread

全部标签

c++ - 远程线程的 DuplicateHandle 失败,错误为 ERROR_INVALID_HANDLE

您好,我试图挂起一个远程线程,但在途中我偶然发现DuplicateHandle失败并出现错误6,ERROR_INVALID_HANDLE。下面的方法适用于当前进程,但如果给出了像“calc”(在同一主机中)这样的远程进程,则DuplicateHandle会失败。进程以Adminpriv运行,SeDebugPriv和SeSecurityPriv被授予(ProcessExplorer确认),但没有用。任何的想法?`boolDbgHelpWrapper::GetThreadStartAddress(IntPtrprocessHandle,DWORDprocessId,DWORDthreadI

c++ - 在 Windows、TIB 和异常上修改堆栈

我的问题的起源实际上源于想要在支持用户提供堆栈的Windows上提供pthreads的实现。具体来说,pthread_attr_setstack应该做一些有意义的事情。我的实际要求比这要复杂一些,但这足以满足本文的目的。没有公共(public)WinAPI可以在Fiber或ThreadAPI中提供堆栈。我四处寻找偷偷摸摸的后门、变通办法和黑客,没有任何进展。事实上,我查看了winpthread源代码以获得灵感,它忽略了提供给pthread_attr_setstack的任何堆栈。相反,我尝试了以下“解决方案”以查看它是否可行。我使用ConvertThreadToFiber、CreateF

c - 如何在 Windows 中检索线程的起始地址?

我正在用C开发一个迷你Windows进程资源管理器,我有一个线程的句柄。如何检索该线程的起始地址?像这样的东西: 最佳答案 几天前已经有人问过这样的问题。这是一个示例解决方案:DWORDWINAPIGetThreadStartAddress(HANDLEhThread){NTSTATUSntStatus;HANDLEhDupHandle;DWORDdwStartAddress;pNtQITNtQueryInformationThread=(pNtQIT)GetProcAddress(GetModuleHandle("ntdll.dl