| Посл.ответ | 
Сообщение | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 12:28   · Личное сообщение ·  #1 
Есть DLL, написанная на Visual C++ v6 (без сжатия). Соответственно, экспортирует ряд функций. Подскажите методы, при помощи которых можно определить состав параметров для каждой функции.
 З.Ы. Простите если вопрос через чур глупый / нубский (
   | Сообщение посчитали полезным:  | 
 | 
 Ранг: 53.8 (постоянный) Активность: 0.04↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:04   · Личное сообщение ·  #2 
IDA?
   | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:08   · Личное сообщение ·  #3 
угу, помогло, сенькс. сильно облегчило жизнь. 
 я так понимаю, что в строке, к примеру:
 10004330 arg_0  = dword ptr  4
 4 - кол-во байт?
   | Сообщение посчитали полезным:  | 
  Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE 
 
 | 
Создано: 26 сентября 2005 13:09 · Поправил: Hellspawn   · Личное сообщение ·  #4 
я так понял ты хочешь заюзать чужую dll в своей проге???
 ну чтож отладчик тебе в помощь, берешь ollydbg
 ищешь там функцию, которая тебе нужна, и смотришь на её вызов,
 olly покажет тебе какие параметры передаются в функцию...
 при трассировке будет хорошо видно, что кладется в стек...
 а дальше по обстаятельствам... учти что в отладчике, если я не ошибаюсь   
все параметры будут наоборот, т.е. первый параметр - в отладчике будет последним,
 вроде так... надеюсь ты хоть что-то понял?   
----- [nice coder and reverser]  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:14   · Личное сообщение ·  #5 
"надеюсь ты хоть что-то понял?" обыжаешь, дорогой ) 
 просто под рукой отладчика "толкового" нету, трафика мало, а хотел по-быстрому ) но спасибо за совет ) я хоть вопросы нубские задаю, и знаний асма у меня совсем мало, парень я толковый ) наверное...
   | Сообщение посчитали полезным:  | 
  Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE 
 
 | 
Создано: 26 сентября 2005 13:16   · Личное сообщение ·  #6 
ок    а так сразу не скажешь   
просто самаму  надо было вызвать функцию из чужой 
 dll... после 20 мин в отладчике, все получилось...
 так что можешь длл приатачить, если не большая, а я гляну
 что да как..   
----- [nice coder and reverser]  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:20   · Личное сообщение ·  #7 
Аттачу ) Если сможешь глянуть - буду благодарен. Все равно до утра ту же OllyDbg не смогу заиметь (    71cf_db.dll
  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:21   · Личное сообщение ·  #8 
забыл упаковать, но думаю 100kb не так уж и страшно )
   | Сообщение посчитали полезным:  | 
  Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE 
 
 | 
Создано: 26 сентября 2005 13:23   · Личное сообщение ·  #9 
понятное дело.. анлим на 512 гы   
как функция то называется, которая тебе нужна???
 ----- [nice coder and reverser]  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:28   · Личное сообщение ·  #10 
да по идее я все хотел ) но чтобы тебя сильно не утруждать - глянь OpenDB. завтра утром сам попытаюсь со всем остальным разобраться.
   | Сообщение посчитали полезным:  | 
 Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:29   · Личное сообщение ·  #11 
ппц...  можно сказать без сомненья афтар жжот вот почему:
 > 10004330 arg_0 = dword ptr 4 
 > 4 - кол-во байт?
 когда прога вызывает процедуру xxx по адресу 401000 мнемоникой call то встек заносится двордом адрес возврата а параметры идут по возрастающей... чтоб тебе было проще их воспринимать ида конвертирует параметры в dword ptr... т.е. dword ptr esp+4... (arg  значит аргумент)...
 зы: про то как заюзать чужую dll в своей проге я умолчу   ))
 ----- Shalom ebanats!  | Сообщение посчитали полезным:  | 
  Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE 
 
 | 
Создано: 26 сентября 2005 13:32   · Личное сообщение ·  #12 
функцию нашел... тока мне без exe файла, юзающего эту длл 
 никак не разобраться    
я так понял длл для работы с какой то базой данных   
----- [nice coder and reverser]  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:34   · Личное сообщение ·  #13 
гы ) ну блин, кто ж знал. свою ошибку осознал, просто так заманчиво было arg воспринять как АРГумент ) буду знать. раньше с IDA никогда не работал, не думал что тут так все завернуто ) встретил знакомое слово, ассоциации и в итоге неправильно воспринял )) и правда глупо вышло ) спасибо за замечание!
 Тогда ясно становится, что 4 - это значение, типа dword ptr соответственно. А я все ломал голову нафига параметру функции какое-то значение ) Подумал, что кол-во байт, хотя на кол-во байт уже мне указывал тип. В итоге оказалось, что вообще смотрел не туда, куда надо (
 Буду учиться на своих ошибках. Еще раз всем спасибо.
 "про то как заюзать чужую dll в своей проге я умолчу ))" 
 это камень в мой огород? ))
   | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:37   · Личное сообщение ·  #14 
ехе боюсь что тянет за собой еще много чего ( да, это действительно библиотека для работы с одной из "самодельных" БД. понимаю что отладчик без ехе тут бессилен ( я сам как-то не подумал, когда тебе либу давал (
 вот так вот я "жжу"   
  | Сообщение посчитали полезным:  | 
 Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:38   · Личное сообщение ·  #15 
не... не в твой... просто чтоб заюзать длл без всяких SDK и debug info надо немало попариться... и одной ольки тут не достаточно   
----- Shalom ebanats!  | Сообщение посчитали полезным:  | 
  Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE 
 
 | 
Создано: 26 сентября 2005 13:39 · Поправил: Hellspawn   · Личное сообщение ·  #16 
ну если пару функиций вызвать, то олька справится вполне... если
 есть файл, который работает с этой длл   
а если нету.. тогда уже придется парится   
----- [nice coder and reverser]  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:41   · Личное сообщение ·  #17 
я понимаю про что ты говоришь. но при условии, что цель, для который используется библиотека я знаю ) глядя на передоваемые значения в DLL можно будет попробовать догадаться о назначении. тут все довольно просто. навряд ли передаются какие-либо структуры - все максимально упрощено.
   | Сообщение посчитали полезным:  | 
 Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:43   · Личное сообщение ·  #18 
> ну если пару функиций вызвать, то олька справится в полне
 нихера не втыкаю... с чем олька справится?    речь идёт о девелопменте а не об отладке =))
 ----- Shalom ebanats!  | Сообщение посчитали полезным:  | 
  Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE 
 
 | 
Создано: 26 сентября 2005 13:44   · Личное сообщение ·  #19 
ну дык ты чего ??? короче смотришь, где эта функция вызывается в ехе 
 файле... и что ей передается...
 и уже в своей проге делаешь все также    че непонятно   
----- [nice coder and reverser]  | Сообщение посчитали полезным:  | 
 Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:45   · Личное сообщение ·  #20 
> и что ей передается
 уверен что увидишь?   
----- Shalom ebanats!  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:46   · Личное сообщение ·  #21 
он имеет в виду что отлавдивая олли передаваемый в библиотеку набор данных, можно попробывать выявить закономерность и попытаться проанализировать назначение каждого из параметров. я понимаю что тут еще много подводных камней есть, но это уже дальнейшее мозгопарство в процессе дальнейшей работы с чужой либой ) я правильно понял, Hellspawn?
   | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:47   · Личное сообщение ·  #22 
> и что ей передается
 что передается увидеть я так понял позволит нам отладчик, но понять назначение этого - уже дело другое )
   | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:49 · Поправил: NaumLeNet   · Личное сообщение ·  #23 
уверяю вас, господа, в конкретном случае все очень просто в плане определения назначния параметров. тут методом тыка немного потыкаться и все пучко будет. понимаю о чем говорит SLV и согласен с ним.
   | Сообщение посчитали полезным:  | 
 Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:54   · Личное сообщение ·  #24 
дык...
 push offset libname
 call loadlibrary
 mov [dwLib],eax
 push offset functionname
 push [dwLib]
 call getprocaddress
 mov [dwProcXXX],eax
 push params
 ..
 call dword ptr[dwProcXXX]
 в чём проблема?   
----- Shalom ebanats!  | Сообщение посчитали полезным:  | 
  Ранг: 103.3 (ветеран), 8thx Активность: 0.06↘0 Статус: Участник 
 
 | 
Создано: 26 сентября 2005 13:56 · Поправил: NaumLeNet   · Личное сообщение ·  #25 
> дык...
 это кому адресовано? я понимаю что это листинг вызова некой функции из dll неким хостом, но к чему это все?
   | Сообщение посчитали полезным:  | 
  Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE 
 
 | 
Создано: 26 сентября 2005 14:00   · Личное сообщение ·  #26 
SLV пишет:
 уверен что увидишь? 
еще как видно    только, что грузанул в олли старый проект
 и посмотрел   
NaumLeNet да правильно...
 но там не всегда все так сложно...
 ты прав, а назначение их надо понять, ну дык мозги тебе зачем    
----- [nice coder and reverser]  | Сообщение посчитали полезным:   |