Извлечение функции из DLL

Тема в разделе "WASM.RESEARCH", создана пользователем vlademar, 2 окт 2007.

  1. vlademar

    vlademar New Member

    Публикаций:
    0
    Регистрация:
    2 окт 2007
    Сообщения:
    10
    Существует ли сравнительно простой программно реализуемый способ извлечь код _экспортируемой_ функции из DLL, например, в byte[]?
    Можно предположить, что код функции неразрывен внутри библиотеки, то есть его положение в пределах файла задаётся двумя смещениями -- первым и последним байтом. С первым байтом всё ясно, как быть с последним?
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    сравнительно простой это тупо сканировать до первого ret но это весьма и весьма не надежный способ. ну а вообще задача нетривиальна так что вряд ли будет простой способ ее решить
    + как вариант брать смешение следующей экспортируемой функции(хотя бред наверное =)))
     
  3. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    брать смещение всех експортируемых функций, смотреть кокие имеют смещение большее, чем у нашей процы, выберать из них с найменьшим смещением, брать адрес её ночала как адрес конца нашей...
    но даже если ты вырежешь таким образом ф-ию, откуда ты знаешь, что она не использует данные вне блока начало-конец-функции и не обращается к другим ф-иям исходной либы?
     
  4. BLiTZ

    BLiTZ Member

    Публикаций:
    0
    Регистрация:
    4 июл 2006
    Сообщения:
    54
    TMG Ripper Studio?
     
  5. vlademar

    vlademar New Member

    Публикаций:
    0
    Регистрация:
    2 окт 2007
    Сообщения:
    10
    nobodyzzz, FreeManCPM -- к сожалению, этот вариант не подходит. Уже проверил -- экспортируемые функции перемежаются с локальными.

    BLiTZ спасибо, вы мне косвенно очень помогли! Очень приятная утилита -- PEBrowse Pro