2013-02-20 2 views
0

Я ищу решение для перечисления функций поиска из сборок Windows (exe, dll, ocx). Я считаю, что в WMI есть какой-то инструмент, но я не могу найти. Он должен быть близок к функциям System.Reflection .NET, но мне нужно анализировать платформу исполняемых файлов Windows независимо, а System.Reflection применим только для .NET-приложения.Получить функции исполняемого файла Windows

+0

Вы хотите программное решение? Или достаточно свалка? –

+1

Даже если вы можете получить функции, вы не будете знать, как их называть, поэтому информация не очень полезна. –

+0

DAVID: да, мне нужно программное решение, которое может выполнять функции со своими сигнатурами с удаленного компьютера в локальной сети для всех возможных файлов exe Windows. –

ответ

0

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

Битовый файл формата PE содержит список экспортируемых функций (хотя и не обязательно по имени). Вы можете увидеть их с помощью инструмента командной строки, который поставляется с Visual Studio под названием dumpbin. Например, dumpbin /exports отобразит экспортированные функции.

+0

dumpbin tool извлекает только имена функций. Что делать, если мне нужны полные подписи методов? Кроме того, не уверен, работает ли он на удаленном компьютере (в локальной сети Ethernet) –

+0

Возможно, вам будет невозможно. Большинство двоичных файлов не содержат сигнатур функций или другой информации о символах. Если у вас есть файлы .pdb, соответствующие двоичным файлам, вы можете использовать библиотеку dbghelp для запроса их для получения информации о символах. –

+0

Я уточнил это требование: целью является исполняемый файл VC++ MFC. Есть ли какие-либо программные (например, WinAPI или WMI) для этой платформы? –

0

Если вы хотите получить полную информацию о подписи, это ваши варианты.

  • Управляется: Вы можете использовать отражение
  • COM: Некоторые двоичные файлы, которые экспортируют объекты COM будут поддерживать IDispatch, что позволит вам запросить открытый API.
  • Для всего остального вам нужно будет перейти к отладочным символам. Как уже говорилось, двоичным файлам не нужно хранить данные подписи, поэтому они не поддерживают их. Вы можете использовать DIA SDK для запроса файлов .PDB, просто имейте в виду, что большинство разработчиков не будут предоставлять полные файлы символов.
  • Если у вас нет символов, имена любых экспортируемых функций являются ближайшей целью, которую вы собираетесь получить (и это именно то, что отладчики отбрасывают, когда символы недоступны). Чтобы получить доступ к этой программе, обратитесь к спецификации PE COFF.
Смежные вопросы