Есть ли инструмент, позволяющий проверять объекты .NET в работающем процессе? - PullRequest
6 голосов
/ 28 января 2009

Я думал об инструменте для проверки объектов во время выполнения, в первую очередь для обратного проектирования, и мне интересно, существует ли такая вещь.

Я думал об этом так, что у вас было два представления, график объектов и список классов. Из списка классов вы можете выбрать класс и просмотреть его экземпляры либо в списке, либо на графике. На графике вы можете видеть связи между объектами, отмеченные соответствующим образом, например, ключи в хеш-таблице могут быть метками по краям между объектом хеш-таблицы и значением.

Вы также можете открыть список свойств объекта и посмотреть / изменить значения внутри. Метаданные, представленные в .NET, сделают это довольно тривиальным.

Кто-нибудь знает инструмент, который может это сделать? Это кажется чрезвычайно полезным инструментом для отладки и реинжиниринга.

Редактировать: Кроме того, еще одной полезной функцией будет возможность устанавливать сопоставления имен при просмотре двоичного файла. То есть, если у вас есть запутанный двоичный файл, вы сможете обменять запутанные имена на заполнители или настоящие имена. Это не повлияет на реальный двоичный файл, только на представление в инспекторе.

Редактировать часть 2. Инструмент должен быть в состоянии работать в Vista и XP и иметь поддержку x64.

Ответы [ 4 ]

9 голосов
/ 28 января 2009

Существует инструмент под названием Crack.NET, специально предназначенный для анализа управляемой кучи.

http://joshsmithonwpf.wordpress.com/cracknet/

http://www.codeplex.com/cracknetproject

1 голос
/ 28 января 2009

Существует программа под названием Hawkeye , которая позволяет вам просматривать элементы пользовательского интерфейса в приложении .NET.

Я также нашел программу под названием .NET Component Inspector Я не уверен, насколько она хороша (пробую сейчас).

1 голос
/ 28 января 2009

Вы всегда можете получить мини-дамп из рассматриваемого приложения и проверить его с помощью WinDBG и SOS.

1 голос
/ 28 января 2009

Если у вас запущен процесс, значит, у вас есть двоичный файл где-то на вашем компьютере.

Вы можете загрузить этот двоичный файл в Reflector.

Или, если у вас установлена ​​Visual Studio, вы можете подключить отладчик Visual Studio к запущенному процессу.

...