Текущий архив: 2008.10.26;
Скачать: CL | DM;
Вниз
Как получить список функций из dll? Найти похожие ветки
← →
@!!ex © (2008-09-04 07:53) [0]Суть задачи:
Есть dll(сказано, что она с дебаговой информацией собрана):
Нужно получить список функций с параметрами, написать враппер и логировать все вызовы функций.
Проблема в том, что я не знаю как выдрать инфу о функциях и их параметрах...
← →
@!!ex © (2008-09-04 07:54) [1]Вот dll:
http://www.mediafire.com/?21xzrcvmx11
← →
xayam © (2008-09-04 08:35) [2]http://xayam.900megs.com/index.php?s=%2B%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA+%2B%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9&pnumber=30&forum=&user=
← →
xayam © (2008-09-04 08:42) [3]точнее где-то в этой ветке http://xayam.900megs.com/html/html53/5-1117141426.html исходный код в постах Игоря Шевченко
← →
@!!ex © (2008-09-04 08:47) [4]Функции выдрать не вопрос! Как параметры функций получить??
← →
Игорь Шевченко © (2008-09-04 09:25) [5]
> Как параметры функций получить??
поговорить с авторами
← →
oxffff © (2008-09-04 09:34) [6]
> @!!ex © (04.09.08 07:53)
Смотри MSDN
You can get the decorated form of a function name after you compile the source file that contains the function definition or prototype. To examine decorated names in your program, you can do one of the following:
Use a listing
Use the DUMPBIN tool
You can use the undname.exe to convert a decorated name to its undecorated form. For example,
Copy Code
C:\>undname ?func1@a@@AAEXH@Z
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation 1981-2000. All rights reserved.Undecoration
of :- "?func1@a@@AAEXH@Z"
is :- "private: void __thiscall a::func1(int)"
← →
oxffff © (2008-09-04 09:35) [7]Вот соответствие их нотации
?func1@a@@AAEXH@Z = private: void __thiscall a::func1(int)
← →
Rouse_ © (2008-09-04 09:50) [8]
> Проблема в том, что я не знаю как выдрать инфу о функциях
> и их параметрах...
Сам список функций можно получить например вот так: http://rouse.drkb.ru/winapi.php#propsheet
А параметры, точнее их размер - только дизассемблированием :)
← →
Petr V. Abramov © (2008-09-04 10:02) [9]
> Rouse_ © (04.09.08 09:50) [8]
а через debug_info?
← →
Rouse_ © (2008-09-04 10:26) [10]
> а через debug_info?
А что ты там вытащищь? Вот тебе что на входе:extern "C" __declspec(dllexport) DWORD WINAPI GSPriceSRCPluginLogin(
LPCTSTR szUserName, LPCTSTR szPassword, LPSTR* szErrorDescription)
вот что видно с отладочной инфой:; int __cdecl sub_10034430(LPVOID lp,int,int)
.text:10034430 sub_10034430 proc near ; CODE XREF: GSPriceSRCPluginGetPriceDataj
.text:10034430
.text:10034430 var_380 = dword ptr -380h
.text:10034430 var_37C = dword ptr -37Ch
.text:10034430 var_370 = dword ptr -370h
.text:10034430 var_364 = dword ptr -364h
.text:10034430 var_358 = dword ptr -358h
.text:10034430 var_34C = dword ptr -34Ch
.text:10034430 var_340 = dword ptr -340h
.text:10034430 var_334 = dword ptr -334h
.text:10034430 var_328 = dword ptr -328h
.text:10034430 var_25C = dword ptr -25Ch
.text:10034430 var_250 = dword ptr -250h
.text:10034430 var_24C = dword ptr -24Ch
.text:10034430 var_230 = byte ptr -230h
.text:10034430 var_22F = dword ptr -22Fh
.text:10034430 var_12F = dword ptr -12Fh
.text:10034430 ucb = dword ptr -20h
.text:10034430 var_18 = dword ptr -18h
.text:10034430 var_10 = dword ptr -10h
.text:10034430 var_8 = dword ptr -8
.text:10034430 var_4 = dword ptr -4
.text:10034430 lp = dword ptr 8
.text:10034430 arg_4 = dword ptr 0Ch
.text:10034430 arg_8 = dword ptr 10h
← →
Rouse_ © (2008-09-04 10:28) [11]Пардон, вот правильный :
extern "C" __declspec(dllexport) DWORD WINAPI GSPriceSRCPluginGetPriceData(
LPPRICEPLUGINRESQUERY pQuery, LPPRICEPLUGINRESOUTRECORD pBuffer, LPDWORD cnSize)
← →
@!!ex © (2008-09-04 10:34) [12]IDA параметры вынула... но как теперь это скинуть в файл - непонятно...
> [6] oxffff © (04.09.08 09:34)
Спасибо!
← →
Правильный$Вася (2008-09-04 11:01) [13]
> Есть dll(сказано, что она с дебаговой информацией собрана):
> Нужно получить список функций с параметрами
у того, кто тебе ее сдал с дебаговой информацией, он же должен дать полное описание функциональности и параметров
если не дает, в ж..у таких, пускай сами в своем г..е копаются
← →
@!!ex © (2008-09-04 11:56) [14]> [13] Правильный$Вася (04.09.08 11:01)
Тот, кто сделал эту длл продал права издателю...
А вот издатель принес проект в нашу фирму...
А начальство скинуло проект мне...
Вот и парюсь теперь.
← →
Правильный$Вася (2008-09-04 11:57) [15]ну так и выуди по иерархии в обратную сторону то, что тебе надо
или слабо?
← →
@!!ex © (2008-09-04 12:18) [16]> [15] Правильный$Вася (04.09.08 11:57)
Так выудил уже с помощью IDA...
Только теперь у меня есть кучка файлов зашифрованных...
Алгоритм шифрования не известен... Известно что зашифровано с помощью Crypto++, известна часть зашифрованных данных...
Как данные вынуть??
← →
Правильный$Вася (2008-09-04 12:24) [17]выуди по иерархии "начальство-издатель-разработчик"
отсутствие документации является препятсвием для нормальной работы (и для получения денег), это не может не понимать твое начальство, если объяснишь ему
а оно, если с головой, продолжит мысль в сторону разраба
а хакерскими методами ты Integer от DWORD не отличишь, я уж не говорю, если это окажется указатель на что-то
← →
@!!ex © (2008-09-04 12:40) [18]> отсутствие документации является препятсвием для нормальной
> работы (и для получения денег), это не может не понимать
> твое начальство, если объяснишь ему
> а оно, если с головой, продолжит мысль в сторону разраба
Нету уже разработчика. В этом и проблема...
← →
Правильный$Вася (2008-09-04 12:46) [19]
> Нету уже разработчика. В этом и проблема...
а права он продавал на бинарник или все ж таки на свое изделие
тогда дознаваться у издателя, правопреемника, наследника и т.п.
хотя, если тебе охота стать крайним, перышко в ... , как говорится
← →
@!!ex © (2008-09-04 12:58) [20]> а права он продавал на бинарник или все ж таки на свое изделие
> тогда дознаваться у издателя, правопреемника, наследника
> и т.п.
На бинарник.
> хотя, если тебе охота стать крайним, перышко в ... , как
> говорится
Крайним то я не стану, просто придется сказать начальству, что разобраться не могу.
← →
Правильный$Вася (2008-09-04 13:03) [21]
> На бинарник.
без документации?!
вас кинули - так начальству и передай
← →
@!!ex © (2008-09-04 13:10) [22]> [21] Правильный$Вася (04.09.08 13:03)
Да не кинули... Нормальная это практика, уже не первый проект.
Просто первый раз такой геморой.
← →
Правильный$Вася (2008-09-04 13:15) [23]
> Да не кинули... Нормальная это практика, уже не первый проект.
о, да вас постоянно кидают, что вы уже это нормой воспринимаете
мамочки!
← →
@!!ex © (2008-09-04 13:20) [24]> [23] Правильный$Вася (04.09.08 13:15)
:))))
Просто разбор ресурсов входит в контракт. Это обычное условие.
Если ресурсы разобрать не удается, то об этом заказчику сообщается и он ищет решения.
Собственно я в фирме недавно, пока полностью сделали один проект, второй в стадии тестирования, заказчики помогают, но сами сорсов не имеют.
← →
Правильный$Вася (2008-09-04 13:25) [25]
> Просто разбор ресурсов входит в контракт. Это обычное условие.
дык, я и говорю - кидают, причем официально
пример:
я писатель, написал крутющий роман, дал почитать издателю, он подписал контракт на издание
а я ему в зашифрованном виде текст отдаю и без пароля, нехай долбится, уже его проблемы - издаст или нет
ку?
← →
@!!ex © (2008-09-04 13:30) [26]> [25] Правильный$Вася (04.09.08 13:25)
Нет не ку.
Тут речь об играх.
Издатель покупает игры.
Игры вполне успешно работают, издатель и слова такого "сорсы" не знает.
И все у них замечательно, пока не нужно влезть в ресурсы, и что нить там подправить, например провести локализацию(наш случай).
← →
Правильный$Вася (2008-09-04 13:32) [27]
> И все у них замечательно, пока не нужно влезть в ресурсы
т.е. вы сами себя контрактом оболваниваете, хотя и знаете, что все равно придется лезть внутрь, но изображаете ежиков на кактусе
← →
Slym © (2008-09-04 13:47) [28]@!!ex © (04.09.08 13:20) [24]
разбор ресурсов
Хакаете чужой софт? А это законно? Ведь не зря зашифровано... Чтоб не спиратили...
← →
@!!ex © (2008-09-04 14:22) [29]> т.е. вы сами себя контрактом оболваниваете, хотя и знаете,
> что все равно придется лезть внутрь, но изображаете ежиков
> на кактусе
Знаем. Поэтому оценка работы идет ПЕРЕД заключением контракта. :)
Тоесть я сейчас скажу начальству, что не смог разобрать ресурсы, это попробуют сделать еще несколько человек(собственно и я не первый), не получится - об этом будет сказано заказчику и начальство будет искать альтернативные решения.
> [28] Slym © (04.09.08 13:47)
Вполне. Первое чем я поинересовался, когда устраивался на работу - это законность.
Страницы: 1 вся ветка
Текущий архив: 2008.10.26;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.005 c