Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1

Control Flow Graph генератор (MSIL)

18.01.2013, 11:17. Показов 3697. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, выручайте) ищу инструмент для создания графа потока управления по MSIL коду. Т.е. последовательность действий будет такая:
.NET приложение + ildasm = .IL код
.IL код + (неизвестный инструмент?) = Граф потока управления.

Долго искал и ничего путного не нашел, мелькает где то инструмент Phoenix, но так и не нашел где скачать, подскажите может кто пользуется чем-нибудь?

Может быть есть другое комбо для достижения нужной цели? Цель: построить граф потока управления по методам .exe файла .NET
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2013, 11:17
Ответы с готовыми решениями:

Какая разница между Web server control, Composite control и User Control
Подскажите, пожалуйста, какая разница между Web server control, Composite control и User Control, а то я ща тут наделаю делов)

Аппаратный flow control на больших скоростях на USART?
Кратко: нужен ли? Полно: делаю свой аналог простенького can sniffer-а. В качестве вывода данных - либо usb (через usart/fdti, ибо...

f103 криво работает flow control на uart
stm32 передаёт байты нормально, но на приёме на линии rts никогда не появляется низкого уровня т.е. отсылающее устройство не может начать...

7
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
18.01.2013, 11:51
Есть такой открытый декомпилятор .NET - ILSpy.
Один из первых шагов декомпиляции - построение такого графа.
Если взять старые версии, например, коммит 8c22f07 - то там он даже создает кнопки на панельке, которые строят граф в виде *.png файлов.
Он сначала строит объектное представление графа, потом по нему генерирует текстовый файл на языке dot
Потом запускает утиллиту строящую рисунок по графу - dot.
1
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
18.01.2013, 13:10  [ТС]
а в новой версии генерирует этот текстовый файл на языке dot? не могу его найти, или утилиткой надо специальной помочь? пример можете привести? или надо всяко старую качать?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
18.01.2013, 13:22
Нет, по крайней мере последняя точно не генерирует.

Добавлено через 6 минут
Убрали это в коммите 758f18c73f26675.
Можете скачать версию из предшестующего коммита - https://github.com/icsharpcode... 9c84a0.zip

Код который вызывает построение графа, находится в файле IlSpy/MainWindow.xaml.cs
1
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
18.01.2013, 13:38  [ТС]
Никак не могу найти, ты говорил про кнопку, предполагаю она должна появляться где-то в интерфейсе?

Цитата Сообщение от turbanoff Посмотреть сообщение
Код который вызывает построение графа, находится в файле IlSpy/MainWindow.xaml.cs
похоже что-то здесь void ShowGraph(string name, GraphVizGraph graph)
сейчас погляжу.
Миниатюры
Control Flow Graph генератор (MSIL)  
0
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
18.01.2013, 13:49  [ТС]
если скомпилировать в режиме Debug, появляются кнопки,
при выборе метода и нажатия кнопки крашится на строке
Process.Start("dot", "\"" + fileName + ".gv\" -Tpng -o \"" + fileName + ".png\"").WaitForExit();
предполагаю что dot у меня не установлен, и его установка решит проблему =)
Спасибо большое за подсказку, попозже попробую окончательно и отпишусь.
Выручил)
0
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
22.01.2013, 19:48  [ТС]
dot.exe присутствует в пакете Graphviz, который не хочет работать у меня на windows 8 ни в какую( валится с ошибкой отсутствия graph.dll

dot.exe кроме Graphviz нигде нет?

Добавлено через 1 час 37 минут
вроде с грехом пополам построил.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
22.01.2013, 20:06
Почитайте статью в википедии - http://en.wikipedia.org/wiki/DOT_language. Там есть ссылки на программы, понимающие dot.
Вот например онлайн генератор - http://rise4fun.com/agl
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2013, 20:06
Помогаю со студенческими работами здесь

Литература по MSIL
всем доброго времени! не мог бы кто подсказать литературу для изучения MSIL? заранее спасибо

Работа с MSIL
Совершенно не разбираюсь в MSIL, но хочу его изучать, для начала смотреть и править свои программы (c#) в MSIL. Подскажите как это сделать...

Читерный MSIL! WTF?!
Предположим, что мы решили сделать универсальный сериализатор для структур: public static void Copy<T>(T value, IntPtr...

Написать транслятор MSIL to C#
Я даже не знаю с чего начать. Жду помощи профессионалов в этом деле.

Как перевести код с MSIL на C#
Мне интересно как это сделать. Вобщем вот написал на MSIL код: .typelist { Dearchivator.Program/*02000002*/ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru