Существует ли сравнительно простой программно реализуемый способ извлечь код _экспортируемой_ функции из DLL, например, в byte[]? Можно предположить, что код функции неразрывен внутри библиотеки, то есть его положение в пределах файла задаётся двумя смещениями -- первым и последним байтом. С первым байтом всё ясно, как быть с последним?
сравнительно простой это тупо сканировать до первого ret но это весьма и весьма не надежный способ. ну а вообще задача нетривиальна так что вряд ли будет простой способ ее решить + как вариант брать смешение следующей экспортируемой функции(хотя бред наверное =)))
брать смещение всех експортируемых функций, смотреть кокие имеют смещение большее, чем у нашей процы, выберать из них с найменьшим смещением, брать адрес её ночала как адрес конца нашей... но даже если ты вырежешь таким образом ф-ию, откуда ты знаешь, что она не использует данные вне блока начало-конец-функции и не обращается к другим ф-иям исходной либы?
nobodyzzz, FreeManCPM -- к сожалению, этот вариант не подходит. Уже проверил -- экспортируемые функции перемежаются с локальными. BLiTZ спасибо, вы мне косвенно очень помогли! Очень приятная утилита -- PEBrowse Pro