| eXeL@B —› Вопросы новичков —› Использование чужой dll - поиск параметров к функции |
| Посл.ответ | Сообщение |
|
|
Создано: 16 августа 2012 11:34 · Личное сообщение · #1 Здравствуйте! Я вот хочу использовать чужую dll d своем проекте, но вот враппера к ней нету . Библиотека имеет название квикапи.длл (для коспирации :s6 . Она используется вот в этой штуке: ftp://195.138.210.3/Distributives/QUIK/TrustManager. Разобрался только с первой функции (она самая простая), public static extern void QapiGetVersion(StringBuilder s) - объявление на C#. Вторая при вызове идётQapiSetEventCallback. Я так понял что тут нужно использовать делегаты, так как функция коллбек (Delegate CallbackDelegate). после этого идет QapiInitializeEx3, тут уже проблема - 4 параметра. Что да как указывать - не знаю. Но я так понял - что в начале передается значение FFFFFFFF (пусть будет UInt32), далее идет путь к библиотеке. ну и два флага (первый всегда 0, второй - 0x12). ну а далее не чего не понимаю:Но самое главное это функция int QapiConnect (arg1,arg2,arg3), где arg1,arg2 - собственно логин и пароль в ascii, последний параметр - какой то адрес в памяти. С ним то не как не могу разобраться... Помогите пожалуйста, понять что это за параметр! ![]() |
|
|
Создано: 16 августа 2012 12:40 · Личное сообщение · #2 QapiSetEventCallback принимает указатель на функцию типа EventCallBack(id_event, param1, param2) Пример вызова EventCallBack(QAPI_EVENT_NEWCLASS, 0, ClassId). QapiInitializeEx3(bool typeInit, char * path, char *filename, int flag) при typeInit==0 инициализируется больше данных path - имя файла их которого читаются данные содержащие константы INFO ACNT ALLT и прочее. filename может быть null, передается функциям с префиксом wt_ (wt_init, wt_get_cipher_crypto_provider) В QapiConnect arg3 содержит указатель на строку, в которую пишется результат операции, она же пишется и в лог Нет времени особо разбирать. HexRays показывает довольно чистый код. Смотри куда сохраняются аргументы, потом смотри откуда ссылаются на эти переменные | Сообщение посчитали полезным: frostmen |
|
|
Создано: 16 августа 2012 13:45 · Личное сообщение · #3 Veliant пишет: QapiSetEventCallback принимает указатель на функцию типа EventCallBack(id_event, param1, param2) Пример вызова EventCallBack(QAPI_EVENT_NEWCLASS, 0, ClassId). QapiInitializeEx3(bool typeInit, char * path, char *filename, int flag) при typeInit==0 инициализируется больше данных path - имя файла их которого читаются данные содержащие константы INFO ACNT ALLT и прочее. filename может быть null, передается функциям с префиксом wt_ (wt_init, wt_get_cipher_crypto_provider) В QapiConnect arg3 содержит указатель на строку, в которую пишется результат операции, она же пишется и в лог Нет времени особо разбирать. HexRays показывает довольно чистый код. Смотри куда сохраняются аргументы, потом смотри откуда ссылаются на эти переменные ну Вы и быстро с этим разобрались!!! УВАЖЕНИЮ НЕТ ГРАНИЦ!) Скажите пожалуйста, а где можно про это почитать, что бы самом было разобраться, особенно с HexRays (Вы используете Ida pro decompiler?) Особенно с этим программным продуктом.. Я вот вчера просидел весь день за олли и мало что узнал... ![]() |
| eXeL@B —› Вопросы новичков —› Использование чужой dll - поиск параметров к функции |

. Библиотека имеет название квикапи.длл (для коспирации :s6
. Она используется вот в этой штуке: ftp://195.138.210.3/Distributives/QUIK/TrustManager. Разобрался только с первой функции (она самая простая), public static extern void QapiGetVersion(StringBuilder s) - объявление на C#. Вторая при вызове идётQapiSetEventCallback. Я так понял что тут нужно использовать делегаты, так как функция коллбек (Delegate CallbackDelegate). после этого идет QapiInitializeEx3, тут уже проблема - 4 параметра. Что да как указывать - не знаю. Но я так понял - что в начале передается значение FFFFFFFF (пусть будет UInt32), далее идет путь к библиотеке. ну и два флага (первый всегда 0, второй - 0x12). ну а далее не чего не понимаю:

Для печати