У меня есть DLL, и я использовал инструмент дампа, чтобы получить в ней одно из имен API:
ordinal hint RVA name
56 3D 00005BB0 GetUserPass
Возможно, эта DLL создана с использованием языка C++/C, но я не уверен. У меня есть доступ к файлу заголовка кода, и та же функция объявлена примерно так:
USER_API USER::ResultCode DD_STDCALL GetUserPass();
Я использую приведенный ниже код для вызова API:
import ctypes
from ctypes import wintypes, byref, c_uint32, c_int, c_int32
dll_path = r"C:\\Program Files (x86)\\Software\\UserComm.dll"
user = ctypes.cdll.LoadLibrary(dll_path)
ResultCode = c_uint32
user.GetUserPass.restype = ResultCode
rc = user.GetUserPass()
print("GetUserPass:", "Success" if rc == 0 else f"Error {rc}")
Я получаю следующую ошибку при выполнении приведенного выше кода Python:
GetUserPass: Error 3758100487
Я снова не уверен, что DLL написана на языке C++/C, но выходные данные инструмента дампа не отображаются и не отображается имя функции.
Я не могу получить полный код возврата из API — в случае успеха он должен вернуть 0.
Как я могу добиться того же и в чем проблема здесь, на моей стороне?
Когда я использую команду линейный интерфейс, который я получаю до нижней точки:
>>> print(user.GetUserPass)
>>> dir(user.GetUserPass)
['__bool__', '__call__', '__class__', '__ctypes_from_outparam__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_b_base_', '_b_needsfree_', '_flags_', '_objects', '_restype_', 'argtypes', 'errcheck', 'restype']
>>>
Подробнее здесь: https://stackoverflow.com/questions/798 ... -the-issue
Вызов DLL API не увенчался успехом – как решить проблему ⇐ Python
Программы на Python
-
Anonymous
1772378907
Anonymous
У меня есть DLL, и я использовал инструмент дампа, чтобы получить в ней одно из имен API:
ordinal hint RVA name
56 3D 00005BB0 GetUserPass
Возможно, эта DLL создана с использованием языка C++/C, но я не уверен. У меня есть доступ к файлу заголовка кода, и та же функция объявлена примерно так:
USER_API USER::ResultCode DD_STDCALL GetUserPass();
Я использую приведенный ниже код для вызова API:
import ctypes
from ctypes import wintypes, byref, c_uint32, c_int, c_int32
dll_path = r"C:\\Program Files (x86)\\Software\\UserComm.dll"
user = ctypes.cdll.LoadLibrary(dll_path)
ResultCode = c_uint32
user.GetUserPass.restype = ResultCode
rc = user.GetUserPass()
print("GetUserPass:", "Success" if rc == 0 else f"Error {rc}")
Я получаю следующую ошибку при выполнении приведенного выше кода Python:
GetUserPass: Error 3758100487
Я снова не уверен, что DLL написана на языке C++/C, но выходные данные инструмента дампа не отображаются и не отображается имя функции.
Я не могу получить полный код возврата из API — в случае успеха он должен вернуть 0.
Как я могу добиться того же и в чем проблема здесь, на моей стороне?
Когда я использую команду линейный интерфейс, который я получаю до нижней точки:
>>> print(user.GetUserPass)
>>> dir(user.GetUserPass)
['__bool__', '__call__', '__class__', '__ctypes_from_outparam__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_b_base_', '_b_needsfree_', '_flags_', '_objects', '_restype_', 'argtypes', 'errcheck', 'restype']
>>>
Подробнее здесь: [url]https://stackoverflow.com/questions/79898915/calling-dll-api-is-not-success-how-to-resolve-the-issue[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия