Мне нужно выполнить команду WinDbg через C#. Чтобы быть более ясным, откройте WinDbg через C# в фоновом режиме, выполните команду в командной строке windbg и закройте приложение windbg. Предоставляет ли C# какие-либо API-интерфейсы для этого?Выполнение команды WinDbg через C#
ответ
Если вы действительно хотите использовать графический интерфейс, просто используйте переключатель -c
, чтобы передать команду в окно. Командная строка Примера прикрепить к Калькулятору и сбросить стек:
windbg.exe -pn calc.exe -c "kb"
Это оставляет Windbg открытым и прикреплены к калькулятору, отображая результат выполнения kb
.
Если вам не нужен графический интерфейс Windbg и вам просто нужно выполнить команду, чтобы получить его вывод, используйте CDB (эквивалент отладчика командной строки).
cdb.exe -pn calc.exe -c "kb; qd"
Так вот, команда в кавычках после -c
выполняется после присоединения к процессу с именем (из-за -pn
) «calc.exe».
В любом случае, если вы вместо того, чтобы иметь идентификатор процесса (PID), используйте -p
:
cdb.exe -p 1164 -c "kb; qd"
Как для запуска его из C#, самый простой способ начать Process и прочитать вывод консоли. См. this answer для готового решения.
В последнем предлагаемом вами решении, т. Е. Создании процесса, прекрасно, но любая идея о том, как предоставить команду для выполнения в качестве входа в WinDbg –
См. Отредактированный ответ –
Да, отличный ответ, похоже, работает, но любой другой подход без создания процессов –
Нет, у C# нет API для запуска или управления WinDbg.
Вы можете использовать общее назначение Process.Start, чтобы запустить WinDbg и передать ему сценарий.
Не могу ли я использовать расширение DLL уже написанное и импортировать эту DLL в C#? –
Как передать скрипт? –
Вы имеете в виду, что [Параметры командной строки WinDbg] (http://msdn.microsoft.com/en-us/library/windows/hardware/ff561306%28v=vs.85%29.aspx)? Или [как передать параметры командной строки в Process.Start] (http://stackoverflow.com/questions/5168612/launch-program-with-parameters)? Или что-то другое? –
Вы можете выполнить код C# из командной строки Windbg, а подход - написать плагин для Windbg. Не уверен, что это тот подход, который вам нужен, но если это так, то post как это сделать.
Вызов C# из WinDbg, я могу написать DLL-расширение WinDbg, но мое требование выполняет команду WinDbg из приложения C#. –
см: https://powerdbg.codeplex.com/
это не C#, но это> сети и может быть, вы обнаружите подход
Если вы готовы изменить С # на питон см https://pykd.codeplex.com
И, наконец, вы можете использовать собственные dlls DbgEng/DbgHlp из управляемого кода
Есть идеи по использованию родных DLL DbgEng/DbgHlp из управляемого кода? –
Naitive отладчик двигателя не может быть использована, если вы не обернуть его вокруг C++/CLI фотографии mdbglib https://mdbglib.codeplex.com Это отладчик написал такую моду
- 1. Как выполнять команды WinDbg через регулярные интервалы?
- 2. Выполнение команды через код C в Android
- 3. Выполнение команды в C#
- 4. Выполнение долговременной команды через paramiko
- 5. Выполнение команды клавиатуры через jQuery
- 6. Выполнение команды кода C++
- 7. Выполнение команды ls в C
- 8. Выполнение команды ffmpeg с C#
- 9. Выполнение системной команды с C#
- 10. Выполнение команды CMD из C#
- 11. Выполнение команды net view через jsp
- 12. Выполнение команды telnet через CMD с использованием формы окна C#
- 13. Выполнение команды через каждые 1 минуту в C#
- 14. Выполнять команды перед выходом из WinDbg
- 15. Выполнение команды с sudo через PHP
- 16. Выполнение команды Powershell через AutoHotkey сценарий
- 17. Выполнение команды sudo с пробелом через python
- 18. Выполнение команды Sandbox с докере через Ajax
- 19. Выполнение команды UUI Openwrt через PHP
- 20. Выполнение команды unix с паролем через python
- 21. Выполнение команды на удаленном сервере через SSH
- 22. Выполнение запроса команды данных через ASP.NET
- 23. Выполнение сложной команды оболочки ROS через php
- 24. Выполнение команды clearcase с помощью программы c
- 25. Выполнение пакетного цикла Windows через вложенные папки и выполнение команды
- 26. Выполнение команды jsch hanging
- 27. Файл дампа Client.exe через WinDbg:
- 28. Выполнение команды
- 29. Выполнение команды на сервере
- 30. Понимание вывода команды WinDbg! Heap -x -v
Что вы нашли до сих пор? –
Вы пытаетесь выполнить что-то в windbg против своего * собственного процесса или другого? –
Я создаю пользовательские команды с помощью WinDbg. Кроме того, вместо того, чтобы перейти в командную строку WinDbg и выполнить эти команды, мне нужно выполнить их при нажатии кнопки в графическом интерфейсе, созданном с использованием C# –