Не пинайте если вопрос сильно не корректен,но собсвенно,как узнать какие функции можно использовать из dll?Вот есть у меня например некая программка,у нее есть dll от автора.Я например точно знаю откуда то,что там есть нужный мне функционал,но не знаю,что это,и как его использовать.Ну или точнее.Допустим стандартная библиотека C stdio.h это не .h а .so ну или .dll.Допустим я знаю что в ней есть функция вывод в в stdout.но что это за функция(printf) я не знаю.Как мне узнать что есть у нашего воображаемого stdio.so/.dll функция printf.Я сейчас не говорю о том как потом использовать ее,хотя и такой информации был бы рад,только начал осваивать работу с dll.Мне понятно что сатндартные dll например user32, kernel32 описаны на MSDN.Но что делать в случае с неизвесными от Васи Пупкина.
Dokinacap: Не только реверс. Это мне так удобнее. Уверен, существуют и другие программы "посмотреть таблицу экспорта". Нормальные либы поставляются с .h заголовочными файлами с описанием доступных функций
Я обычно Dependency Walker использую www.dependencywalker.com. Показывает не только список экспортируемых функций, но и зависимости от других библиотек.
Однако если есть только DLL без заголовочных файлов и хочется её использовать - то только реверс, как уже выше писали. Ну вот представьте себе - скажем есть библиотека, которая принимает на вход картинку и делает какие-то вычисления, ну, к примеру среднее вычисляет. В IDA вы увидите, что туда отправляется три параметра, но какой за что отвечает вы не знаете. Хорошо, когда есть работающее приложение, которое уже использует эту библиотеку - тут можно запусить его из под отладчика, поставить на эту функцию точку останова, и тогда вы увидите, что, один из параметров - это некий адрес, а два других - скажем, ширина и высота картинки. Но даже и в этом случае вы не знаете деталей - скажем, в памяти изображение может требовать выравнивания на границу 16 байт - а это только из документации можно выяснить, либо путём кропотливого реверс инжиниринга.
dumpbin -exports example.dll
но в общем случае ничего не делать, т.к. помимо функции надо знать какие у нее аргументы и какие соглашения вызова используются, что в принципе не всегда возможно.