Получить типы параметров из имен методов неуправляемой библиотеки?

0

Я спросил в этом посте, как перечислить методы библиотеки C++ dll l library, и здесь я нашел решение P/Вызов библиотеки dbghelp.dll.

Мой вопрос:

Используя dbghelp.dll, когда у меня есть имя метода, могу ли я получить его перегрузки (если они существуют) и его типы параметров, чтобы знать, как я должен вызвать этот метод внутри?

В этом MSDN url - это документация функций библиотеки dbghelp.dll, но я не уверен, может ли одна из функций помочь мне.

PS: Мои знания о PE очень низки, поэтому я прошу решение P/вызывать другие методы, но если это невозможно с помощью dbghelp.dll, я хотел бы знать альтернативы и шаги для выполнения задачи.

Теги:
dll

1 ответ

1
Лучший ответ

В общем случае неуправляемые библиотеки (ex: dll, собранные из c++) невозможны. Формат PE не имеет возможности перепроектировать эту информацию (это одна из причин, по которой dll и lib распространяются с файлами.h). Некоторые обратные инженерные инструменты анализируют пролог функций и делают предположение и эвристику об их параметрах, но только это, догадывается. Для c++ экспортированных функций в библиотеках, возможно, используя искомые имена, можно получить эту информацию. V c++ Название Mangling. Но это зависимая от реализации реализация компилятора и может что-то менять в любое время.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню