C / Python ctypes совместно используемые объекты библиотеки / методы самоанализа - PullRequest
2 голосов
/ 14 октября 2010

Я искал способ перечисления символов, определенных в секции .text, для общего объекта C, загруженного в программу на python с использованием оболочки ctypes.Другими словами, я пытаюсь получить список определенных функций для загруженного CDLL-объекта.

Если нет способа сделать это с помощью ctypes или библиотеки (или привязки python), другой вариант - это python elfбиблиотека разбора или решение типа http://halflifelibrary.com/wiki/Metamod-P.

Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 14 октября 2010

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

Существует скрипт по адресу: http://projects.scipy.org/numpy/wiki/MicrosoftToolchainSupport, который создает дамп таблиц символов библиотеки DLL, анализирует его, чтобы получить открытую таблицу и вывести таблицу в файл .def Это также говорит о том, что это может не сработать, если dll удалена.

Я не уверен, есть ли в Python хорошие анализаторы ELF. Добавляя некоторые, которые я нашел.

0 голосов
/ 14 октября 2010

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

Если вам нужен анализатор объектов для конкретной платформы, возможно, вам следует взглянуть на http://projects.scipy.org/numpy/wiki/MicrosoftToolchainSupport, используя процедуры objdump для получения ссылок на определенные функции в текстовом разделе.

Мой вариант сделать это - написать небольшой анализатор, используя библиотеку синтаксического анализатора ELF, такую ​​как Hachoir или Pydevtools , чтобы проанализировать объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...