为了账号安全,请及时绑定邮箱和手机立即绑定

C#中的挂起过程

C#中的挂起过程

慕的地6264312 2019-10-17 15:48:48
如何在C#中挂起整个流程(就像单击“挂起”时的Process Explorer一样)。我正在使用Process.Start启动Process,并且在某个事件中,我想暂停该进程以便能够对其进行“快照”进行一些调查。
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

因此,实际上,其他答案显示的是正在暂停进程的线程,没有办法真正暂停进程(即在一个调用中)。


另一个不同的解决方案是实际调试您要启动的目标进程,请参见Mike Stall的博客,以获取有关如何从托管上下文实现此目标的一些建议。


如果实现调试器,则将能够扫描内存或您想要的其他快照。


但是,我想指出的是,从技术上讲,现在确实可以做到这一点。即使您确实调试了目标调试对象进程,系统上的另一个进程也可能会注入一个线程,并且将具有执行代码的能力,而与目标进程的状态无关(即使我们说它是否由于访问冲突而达到了断点) ),如果您已将所有线程的暂停数量都提高到超高的暂停数量,并且当前处于主进程线程的中断点,并且处于任何其他此类假定的冻结状态,则系统仍然有可能向该进程注入另一个线程并执行一些指令。您还可能会遇到修改或替换内核通常调用的所有入口点的麻烦 依此类推,但是您现在已经进入了恶意软件MALWARE的竞赛;)...


在任何情况下,使用托管接口进行调试似乎比p /调用许多本地API调用要容易得多,因为这样做会在模拟您可能真正想做的事情上做得很差。使用调试api ;)


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 629 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信