Приложение C# для функции "шаг в" WINDBG

Я делаю много "академических" проектов по безопасности, в основном нацеленных на платформы Linux, но в последнее время у меня был некоторый интерес к Windows. Итак, что я сделал, так это сделал несколько небольших инструментов, таких как приложение, для сбоя других приложений и тому подобного, просто чтобы вызвать поведение. Поэтому мне приходилось много использовать WINDBG для пошагового прохождения процессов, что было довольно полезно, намного круче, чем GDB(linux).

Таким образом, инструмент, который я пытаюсь сделать сейчас, по сути, похож на функцию пошагового изменения в WINDBG. Что я могу сделать, это запустить процесс как System.Diagnostis.Process объект, и посмотреть на все темы и тому подобное. Но то, что мне нужно сделать дальше, это когда я врезался в стену.

Как можно программно "пройти" процесс, используя C# и, предпочтительно, класс System.Diagnostics.Process.

То, чего я пытаюсь достичь, по сути, будет такой же информацией, какую можно получить от WINDBG. Надеюсь, я смогу создать "макро" систему для автоматического прохождения программ.

1 ответ

Решение

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

Ваш вопрос довольно сложный, на самом деле простого ответа нет.

Вот проект Mattias Högström, чтобы вы начали. Его проект обрабатывает неуправляемый код таким образом, используя IDebugClient класс он может ходить стека вызовов. Обладая некоторыми из этих знаний и ссылкой на отладчик, вы можете написать CLR (C++) и интерфейс для него, чтобы вы могли получить к нему доступ из своего собственного приложения на C#.

Другие вопросы по тегам