C# 应用程序的行为类似于 WINDBG 的 "step into"功能

标签 c# windbg system.diagnostics step-into

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

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

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

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

最佳答案

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

你的问题相当复杂,确实没有简单的答案。

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

关于C# 应用程序的行为类似于 WINDBG 的 "step into"功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25144043/

相关文章:

c# - 使用 C# 从 Web 应用程序打开文件夹,拒绝访问

c# - 在运行时编译代码时添加额外的引用

c# - Mono 上的 MVC 查找 aspx 文件而不是路由

c# - 可变生命周期

windows-services - 在 Windows 服务中运行 cdb 时无法下载 Microsoft 符号

windows - 何时以及如何使用 windbg 内核调试

windows - Windbg 和符号文件

asp.net - 异常后诊断跟踪数据消失

c# - 事件记录 IPAddress 并不总能解析

javascript - 如何在 listView 编辑操作中使用 SimpleModal