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

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

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

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

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

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

2 ответа

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

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

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

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

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

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