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

Discussion in 'WASM.RESEARCH' started by vlademar, Oct 2, 2007.

  1. vlademar

    vlademar New Member

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

    nobodyzzz New Member

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

    Freeman New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2005
    Messages:
    1,385
    Location:
    Ukraine
    брать смещение всех експортируемых функций, смотреть кокие имеют смещение большее, чем у нашей процы, выберать из них с найменьшим смещением, брать адрес её ночала как адрес конца нашей...
    но даже если ты вырежешь таким образом ф-ию, откуда ты знаешь, что она не использует данные вне блока начало-конец-функции и не обращается к другим ф-иям исходной либы?
     
  4. BLiTZ

    BLiTZ Member

    Blog Posts:
    0
    Joined:
    Jul 4, 2006
    Messages:
    54
    TMG Ripper Studio?
     
  5. vlademar

    vlademar New Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2007
    Messages:
    10
    nobodyzzz, FreeManCPM -- к сожалению, этот вариант не подходит. Уже проверил -- экспортируемые функции перемежаются с локальными.

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