Как подключить управляемые (.NET) процессы и собирать информацию внутри этого процесса? - PullRequest
2 голосов
/ 13 марта 2011

Мне нужно подключить управляемые (C #, C ++ / CLI) процессы, мне нужно найти и отправить информацию о том, сколько у него окон (связанных элементов управления и их свойств) в целевое приложение, которое написано в управляемом коде C #.

Для этого Что мне нужно сделать? Нужно ли изучать IAT (таблица адресов импорта) и EAT (таблица адресов экспорта) этого управляемого процесса? Нужно ли писать инжектор DLL на C ++? Что еще кроме смены IAT и EAT мне нужно?

[EDIT] Мне нужно прикрепить управляемые запущенные процессы к приложению (которое будет размещать или присоединять другой процесс). После присоединения процесса мне нужно получить свойства всех элементов управления, связанных с окнами этого процесса.

Один за другим я буду перебирать окна этого присоединенного процесса, перечислять все элементы управления, связанные с этим окном (получу идентификатор элемента управления, имя, цвет, положение, размер и т. Д.), И отправлять всю эту информацию в другое приложение. или приложение, которое подключало другие приложения (фактически это приложение в качестве хоста снова должно перерисовывать те же элементы управления с использованием этой информации, не спрашивайте, зачем мне это нужно: -))

С уважением Усман

Ответы [ 2 ]

1 голос
/ 24 сентября 2012

Пожалуйста, посмотрите это http://www.codeproject.com/Articles/463508/Net-CLR-Injection-Modify-IL-Codes-on-Run-time

Вы можете сделать это, изменив код IL во время выполнения

Кроме того, интерфейс Profiler - это еще один способ для вас

1 голос
/ 13 марта 2011

Я думаю, что ответы на эти вопросы могут быть вам полезны:

Как использовать отражение для создания "машины отражения"

...