Анализ библиотеки DLL с помощью Python - PullRequest
1 голос
/ 29 октября 2009

В настоящее время я пытаюсь сделать некоторый самоанализ на DLL с python. Я хочу автоматически создать графический интерфейс тестирования на основе DLL.

Я могу довольно легко загрузить свою DLL в python, и я вызываю некоторые функции. Основная проблема в том, что если я вызываю «dir» для объекта без вызова какого-либо метода, я получаю в результате

>>> dir(myLib)
['_FuncPtr', '__class__', '__delattr__', '__dict__', '__doc__',
'__format__', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__i
nit__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__s
etattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_func_fl
ags_', '_func_restype_', '_handle', '_name']

и когда я вызываю функцию вручную (например, «Read_Version»), я получаю в результате функцию dir

>>> dir(myLib)
['Read_Version', '_FuncPtr', '__class__', '__delattr__', '__dict__', '__doc__',
'__format__', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__i
nit__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__s
etattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_func_fl
ags_', '_func_restype_', '_handle', '_name']

Кажется, что самоанализ работает только над функцией, которую я уже вызвал, и это не совсем "полезно";).

У вас есть другая идея, чтобы выбрать функции, которые находятся в DLL? (в питоне конечно)

Я использую Python 2.6 под Windows.

1 Ответ

2 голосов
/ 29 октября 2009

Насколько я знаю, не существует простого способа сделать это. Вы должны использовать какой-либо внешний инструмент (например, link /dump /exports) или использовать анализатор PE / DLL (например, pefile ).

...