Загрузка exe в другой exe

Тема в разделе "WASM.BEGINNERS", создана пользователем hobo, 11 окт 2010.

  1. hobo

    hobo New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    10
    Как-то посмотрел в processexplorer список хэндлов для разных процессов и обнаружил любопытную вещь: кроме загруженных дллек, в некоторых процессах загружены екзешники, например hh.exe и dxdiag.exe. Вопрос такой, каким образом один екзешник грузит в свое адресное пространство другой? Через LoadLibrary? Или есть какой-то еще документированный способ юзать функции из другого екзешника как из длл?
     
  2. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    По сути отличие exe от dll - один флажок в файловом заголовке.
    Все выводы отсюда, разницы нет.
     
  3. hobo

    hobo New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    10
    Согласен, но посмотрел структуру hh.exe и dxdiag.exe - экспорт там отсутствует. Как же их использует вызывающее приложение?
     
  4. IceCrashLdr

    IceCrashLdr New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2010
    Сообщения:
    193
    deLight
    По структуре PE файла да, но программный код , проблема модет быть в адрессе загрузки ...
     
  5. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    IceCrashLdr
    и какая же там проблема может быть - расскажите нам? (Пусть у ехе есть секция релоков)

    И что программный код ехе и при чем он тут? Опкоды вроде и в африке опкоды...
     
  6. IceCrashLdr

    IceCrashLdr New Member

    Публикаций:
    0
    Регистрация:
    29 июн 2010
    Сообщения:
    193
    ziral2088
    А во какому адрессу будет загружена база ?
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    какая ещё база? грузите, куда хотите, если пи-код или есть релоки в файле...
     
  8. hobo

    hobo New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    10
    Понятно, что теоретически можно использовать екзе как длл если есть релоки. Но и экспорт ведь должен быть. А в hh.exe и dxdiag.exe экспортов нету и тем не менее их как-то юзают!
     
  9. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    hobo
    у длл может не быть экспортов, а у .exe могут быть экспорты
     
  10. KIV

    KIV Member

    Публикаций:
    0
    Регистрация:
    16 июл 2009
    Сообщения:
    231
    Они могут юзать не код, а ресурсы из exe. Типа LoadIcon(LoadLibary('notepad.exe'), 1);
    Проблема с загрузкой exe - в релоках. В DLL они есть сегда, а в EXE их чаще всего нет за ненадобностью.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    hobo
    если известно смещение функции относительно базы загруженного модуля, то никакой экспорт не нужен... тем более, что из екзешника может тянуться не только код, но и какие-либо данные, ресурсы...
     
  12. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    777
    invoke ShellExecute,0,0,hh.exe,0,0,SW_HIDE
    :)
     
  13. qwe8013

    qwe8013 New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    198
    hobo
    EntryPoint?