我做了很多事情"学术"安全项目主要针对Linux平台,但最近我对Windows有一些兴趣。所以我所做的就是制作一些像应用程序这样的小工具来破坏其他应用程序等等,只是为了挑起行为。所以我不得不经常使用WINDBG来处理流程,这非常有用,比GDB(linux)更酷。
因此,我现在尝试制作的工具基本上就像WINDBG中的步进功能一样。我能做的是将进程作为System.Diagnostis.Process
对象启动,并查看所有线程等。但接下来我需要做的就是我撞墙了。
如何通过编程方式"逐步完成"使用C#的进程,最好使用System.Diagnostics.Process类。
我想要实现的内容基本上与从WINDBG获得的信息相同。希望是我能够创造一个宏观的"系统自动逐步执行程序。
答案 0 :(得分:2)
http://www.codeproject.com/Articles/371137/A-Mixed-Mode-Stackwalk-with-the-IDebugClient-Inter
你的问题非常复杂,真的没有简单的答案。
这是MattiasHögström的一个项目,可以帮助您入门。他的项目使用他可以走调用堆栈的IDebugClient
类来处理非托管代码。通过一些知识和The Debugger reference,您可以编写CLR(c ++)及其界面,以便您可以从本机C#应用程序访问它。