草庐IT

进程注入

全部标签

java - 在windows命令提示符下获取自己的进程pid

我正在尝试从它自己的命令提示符中获取PID。但是当使用下面的命令时,我并不总是得到想要的输出。能否请您指出以下语句中的错误是什么?cmd.exe/ctitle="mycmd"&tasklist/v/focsv|findstr/i"mycmd"&dir&help编辑:以下命令正常工作。但是当它与另外两个命令结合使用时。它不起作用。cmd.exe/ctitle="mycmd"&tasklist/v/focsv|findstr/i"mycmd"附加信息:我正在使用JavafinalListcommands=newArrayList();commands.add("cmd.exe");comm

c++ - 注入(inject)后未执行 DLLMain()

我用C++编写了一个dll和注入(inject)器。dll代码如下:#include#include#include#include#include#includeusingnamespacestd;#pragmacomment(lib,"wsock32.lib")extern"C"__declspec(dllexport)voidUploadFile(){.....}INTAPIENTRYDLLMain(HMODULEhinstDLL,DWORDfdwReason,LPVOIDlpReserved){switch(fdwReason){caseDLL_PROCESS_ATTACH:M

c++ - 询问哪个进程锁定了 Windows C++ 中的文件

我有2个应用程序共享同一个锁定文件,我需要知道什么时候另一个应用程序已锁定/解锁文件。下面的代码是最初在Linux机器上实现,正在移植到Window8、VS12。我已经成功地移植了类中的所有其他代码,并且正在锁定文件LockFile(handle,0,0,sizeof(int),0)和等效的UnlockFile(...)。然而,我在使用以下wait()命令时遇到问题。booldevices::comms::CDeviceFileLock::wait(boollocked,inttimeout){//Retrievethecurrentpidoftheprocess.pid_tpid=g

windows - 如何根据子线程的线程 ID 查找进程的 pid?

给定一个线程的线程ID,我需要找到拥有它的进程的pid。我想通过toolhelp库枚举所有线程并使用THREADENTRY32的“th32OwnerProcessID”成员,但我正在寻找更简单(更短)的方法。我找不到直接的API来执行此操作,也无法在StackOverflow中找到答案。提前致谢。 最佳答案 您需要两个WinAPI函数。使用OpenThread获取线程的句柄|,它以线程ID作为参数。使用GetProcessIdOfThread获取进程ID,它将句柄作为参数。在尝试使用它们之前,您需要阅读有关其使用限制的链接文档。

c++ - 试图了解进程特权属性

我正在编写一个可以收集进程权限的日志记录服务,并且我正在尝试了解每个进程权限的属性。让我用这段代码解释一下:HANDLEhToken;if(OpenProcessToken(::GetCurrentProcess(),TOKEN_QUERY,&hToken)){DWORDdwSize=0;if(!GetTokenInformation(hToken,TokenPrivileges,NULL,dwSize,&dwSize)&&::GetLastError()==ERROR_INSUFFICIENT_BUFFER){BYTE*pb=new(std::nothrow)BYTE[dwSize]

c++:让用户进程写入 LOCAL_SYSTEM 命名管道 - 自定义安全描述符

我有一个作为LocalSystem运行的服务,它在登录用户的session中创建一个进程。然后该服务创建一个命名管道,客户端连接到该管道进行读写。根据https://msdn.microsoft.com/en-us/library/aa365600%28v=vs.85%29.aspx客户端只能从管道中读取(它不是Admin,不是Creator,也不是LocalSystem)。我创建了一个安全描述符来授予用户读写访问权限。但这没有用。所以我尝试为Everyone-Group提供读写访问权限。但这也行不通。我的客户端返回的错误代码始终是ACCESS_DENIED(5)。我很高兴知道我做错了

windows - 如何防止 WinDbg 附加到特定的子进程?

我正在使用.childdbg1在WinDbg中调试脚本。(脚本在无限循环中运行软件的各种测试用例。这样我就可以捕捉到罕见的崩溃。)我不需要附加到特定的子进程(出于性能原因并且因为它们是第三方的并且经常崩溃)。如果我可以通过进程名称指定它们,那将解决我的问题。如果您能提出其他可以满足我需要的调试器,我将不胜感激。注意:将调试器配置为通过GFlags附加到特定进程并不是这种特定情况下的解决方案。 最佳答案 如果你激活了.childdbg1,你可以使用sxecpr。使用-c开关,您可以执行命令。像.if(yourcondition){.d

windows - (fork/waitpid) 等待子进程列表,但每次子进程完成时都会中断等待

我正在使用fork生成许多并行运行多个任务的子进程。在我的例子中,简单地等待循环中的所有子进程是不够的,因为如果我列表中的第一个进程是最后一个完成的,那么我的waitpid调用将阻塞,直到该进程完成。我希望我的waitpid调用在每次进程完成时唤醒。原因是我想立即检查已完成的子进程的退出代码以确定该进程是否成功,以便我可以取消仍在运行的任何子进程。在我的例子中,如果任何子进程返回非零退出代码,让它们继续(可能持续数小时!)是没有意义的,因为这将指示错误,即使是一个错误也会使整个工作变得毫无意义。(编辑:我知道这不是waitpid实际工作的方式,但我正在寻找类似的东西。)现在,我可以通过

c++ - 如何以普通用户身份启动进程?

有一个启动器-一个C++程序,您需要以管理员身份运行它。启动器还代表管理员启动另一个进程,因此,以普通用户权限运行的第三方程序(AutoHotkey)无法访问它。第二个过程不需要管理员权限,所以我想用普通用户的权限来实现启动。怎么做?目前我正在使用boost::process::system运行进程。 最佳答案 RaymondChen有一篇关于这个主题的博客文章:HowcanIlaunchanunelevatedprocessfrommyelevatedprocessandviceversa?Goingfromanunelevate

C#运行参数中有多个空格的进程

我正在尝试启动一个在参数中包含多个空格的进程。传递的参数是动态构建的。例如://ThesethreestringswillbebuiltdynamicallystringconsolePath="C:\\MyPath\\nunit3-console.exe"stringdll="C:\\MyPath\\My.Test.dll"stringwhere="--where\"test==My.Test.Example\""stringcmdText=$"\"{consolePath}\"\"{dll}\"{where}";//cmdText="\"C:\\MyPath\\nunit3-con