2

我做了很多主要针对 Linux 平台的“学术”安全项目,但最近我对 Windows 产生了一些兴趣。所以我所做的是制作一些小工具,比如一个应用程序来让其他应用程序崩溃等等,只是为了引发行为。因此,我不得不大量使用 WINDBG 来逐步执行进程,这非常有用,比 GDB(linux) 更酷。

所以我现在尝试制作的工具本质上就像WINDBG中的步进功能。我能做的是将一个进程作为一个System.Diagnostis.Process对象启动,并查看所有线程等。但接下来我需要做的是我碰壁的地方。

如何使用 C# 以编程方式“单步执行”进程,最好使用 System.Diagnostics.Process 类。

我想要实现的基本上是从 WINDBG 获得的相同类型的信息。希望我能够制作一个“宏”系统来自动单步执行程序。

4

1 回答 1

2

http://www.codeproject.com/Articles/371137/A-Mixed-Mode-Stackwalk-with-the-IDebugClient-Inter

你的问题很复杂,没有简单的答案。

这是 Mattias Högström 的一个项目,可以帮助您入门。IDebugClient他的项目使用他可以遍历调用堆栈的类来处理非托管代码。借助这些知识和调试器参考,您可以编写 CLR (c++) 及其接口,以便您可以从本机 C# 应用程序访问它。

于 2014-08-05T19:26:36.540 回答