问题标签 [openprocess]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
browser - 互联网浏览器,谷歌浏览器注入
我编写了在 Internet Explorer/Chrome 中注入函数的代码,但它不适用于这些进程。基本上,它用我的函数需要的所有 API、字符串和其他数据填充一个大结构,然后它打开一个进程来获取句柄,virtualallocex
分配足够的内存来存储函数和结构,然后编写函数和分配的内存中的结构。然后它在createremotethread
那里运行,函数作为起始地址,结构作为参数。
它适用于 calc/notepad/winamp 进程,但浏览器注入有问题。
我想知道它可能是什么,我正在使用这些 API。
是因为浏览器现在受到保护并且它们以最低权限运行吗?
c++ - 其他用户帐户上的 OpenProcess iexplore.exe 因拒绝访问而失败
我正在枚举所有用户的 iexplore.exe 实例。我能够获得机器上匹配进程的列表,但要识别用户,我需要使用 OpenProcess。这适用于我自己的实例,但即使使用以管理员身份运行和 EnableDebugPriv,我仍然会收到拒绝访问消息。我错过了什么吗?iexplore.exe 是否受到某种保护?
这是我用于调试权限的内容:
运行此程序时不会发生错误。运行时出现 ACCESS DENIED 错误
对于不属于我的进程。“其他”用户是从控制面板以正常方式在这台机器上创建的标准和访客帐户。任何想法将不胜感激。我被困住了!最终我想为用户提供关闭应用程序的能力,但即使只有 PROCESS_QUERY_LIMITED_INFORMATION 它也会失败。我仍然需要检查这是否是除 IE 之外的其他应用程序的问题。
更新我最终得到了这个工作。错误出现在 OpenProcessToken 中。我需要不同于我要求的特权。
winapi - 当进程不再存在时,GetExitCodeProcess 如何获取退出代码
我首先使用 OpenProcess 处理进程。然后我在循环中调用 GetExitCodeProcess 以查看进程是否正在运行。但是 GetExitCodeProcess 是如何获取退出代码的呢?Windows 是否存储过去 30 分钟内运行的所有进程的退出代码?一旦应用程序退出,有关该进程的任何信息都会从 Windows 中删除。我不知道 GetExitCodeProcess 如何获取不再存在的退出代码...
c++ - 卡在 OpenProcess 上,总是返回 0
当我运行我的程序时发生了一些奇怪的事情。当我在 VS 2010 中使用“不调试启动”选项运行它时,OpenProcess 照常返回进程句柄,但是当我在 Windows 资源管理器中运行我的程序时,OpenProcess 总是返回 0?!我调用了 GetLastError,它在这两种情况下都返回 6 (INVALID_HANDLE_VALUE)。我正在使用 Windows XP SP3 有人可以帮帮我吗?这是我写的代码:
vb.net - 如何在记事本中从流中打开文件
要打开一个文件,我可以这样做
为此,该文件必须存在于文件系统中。现在我使用一个 XmlDocument 对象,并希望在记事本等外部程序中打开内容。我将 xml 内容保存在流中,但不知道如何在另一个程序中显示它。
如果不可能,我必须先保存它,然后在第二步打开它。我只想避免将文件保存在文件系统中。
c++ - 检测任何使用 OpenProcess 的程序?
为了保护我的程序,我想检查一下是否检测到任何使用我的 PID 执行 OpenProcess 的程序?我想防止其他程序可以轻松地处理我的程序。
我有什么选择?(WinAPI 等)一旦另一个程序使用 OpenProcess,我的程序是否会收到任何通知?
谢谢
vb6 - VB6 应用程序导致安装显示
我的 VB 应用程序遇到了一个奇怪的问题,这让我非常困惑。我正在更新现有程序。我不得不添加一些处理队列功能。在我的系统上,单元测试工作得很好,但是当我编译它并在另一台计算机(网络服务器机器)上运行它时,它首先尝试打开一个办公室安装。如果我取消它,程序似乎运行良好。问题是该程序将在后台运行,并且每次运行时我都无法取消。
所以我的问题是:这里发生了什么?我通常是我们 eclipse 的 java 开发人员,所以我习惯于能够自动将所有需要的库包含到 jar 文件中。VB6 似乎不是这种情况。似乎它希望所有相同的库都在所有系统上。有什么办法可以判断是什么触发了这种情况?
我能想到的唯一原因是我在kernal32 lib中使用了“OpenProcess”函数。这是我所做的唯一重大改变。
任何帮助都会非常有用。谢谢!
编辑:似乎系统上安装了多个版本的 word,它以某种方式搞砸了。我们卸载了一个并修复了它。
c++ - 出现错误 - 启用权限后在 OpenProcess() 中拒绝访问
我想获取 csrss 进程的可执行路径。我启用了权限,但 GetLastError() 函数在 OpenProcess 中返回错误 5。我以管理员身份运行 Visual Studio 并在 64 位模式下编译程序,我也在使用 Windows 8。谢谢大家。
c++ - WinAPI:OpenProcess() 返回错误 5,并为主机进程启用了 SeDebugPrivilege
我有一个例程,当我HANDLE
在列表中“行走”时,我会处理遍历以获取每个进程的
HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID)
访问令牌在哪里PROCESS_ALL_ACCESS
,句柄继承设置为FALSE
,并且 pe32 是PROCESSENTRY32
GetLastError()
返回错误代码 5,所有句柄都是与 Spy++32/64 中的任何适当进程不对应的地址(我尝试在两个平台目标下构建应用程序,但正如您所料,结果是一样的)。
为我正在使用的主机进程设置 SeDebugPrivilege 的代码是:
一些对您有帮助的问题:
- 我正在运行 Windows 7 x64 Professional。
- 是的,devenv.exe 以“以管理员身份运行”权限启动,这意味着调试器和应用程序本身是在相同的关联下启动的。
- 我尝试过切换 UAC 或完全关闭 UAC 运行应用程序。仍然是错误代码 5。
- 我只是尝试这样做,但
PROCESS_QUERY_LIMITED_INFORMATION
收到错误代码 6 或ERROR_INVALID_HANDLE
. 也尝试使用PROCESS_QUERY_INFORMATION | PROCESS_VM_READ
,结果再次出现错误 5。 SeDebugPrivilege
已启用,并通过 SysInternals 的 Process Explorer 进行了验证。此外,从 devenv / 任何调试器产生的所有进程都继承 SeDebugPrivilege 所以......这很奇怪。
非常感谢大家的宝贵时间,我正在解决这个问题:S
c - 检查应用程序先前启动的进程总是返回进程活动
我正在创建一个流程CreateProcess
:
- 带旗帜
CREATE_NO_WINDOW | CREATE_BREAKAWAY_FROM_JOB | CREATE_NEW_PROCESS_GROUP | DETACHED_PROCESS
InheritHandles
参数 =TRUE
- startupinfo 标准输出和标准错误文件重定向 (
STARTF_USESTDHANDLES
) SECURITY_ATTRIBUTES.InheritHandle = TRUE
进程在继续执行时关闭的句柄。
然后我通过获取具有给定 PID 的进程的句柄来检查进程状态:
编辑:是的,我正在检查返回的进程是否真的是我查询的进程:
无论创建的进程是否真的在运行,我都会得到该进程的有效句柄。如果我重新启动我的应用程序,检查代码将正常工作。我怀疑句柄以某种方式被缓冲,或者创建的进程在同一个组中 - 但我似乎无法在文档中找到任何关于它的信息。