Сейчас на форуме: asfa, _MBK_, Adler (+8 невидимых)

 eXeL@B —› Вопросы новичков —› Использование чужой dll - поиск параметров к функции
Посл.ответ Сообщение

Ранг: 1.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 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, последний параметр - какой то адрес в памяти. С ним то не как не могу разобраться... Помогите пожалуйста, понять что это за параметр!



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 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

Ранг: 1.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 - поиск параметров к функции
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати