Как-то посмотрел в processexplorer список хэндлов для разных процессов и обнаружил любопытную вещь: кроме загруженных дллек, в некоторых процессах загружены екзешники, например hh.exe и dxdiag.exe. Вопрос такой, каким образом один екзешник грузит в свое адресное пространство другой? Через LoadLibrary? Или есть какой-то еще документированный способ юзать функции из другого екзешника как из длл?
Согласен, но посмотрел структуру hh.exe и dxdiag.exe - экспорт там отсутствует. Как же их использует вызывающее приложение?
IceCrashLdr и какая же там проблема может быть - расскажите нам? (Пусть у ехе есть секция релоков) И что программный код ехе и при чем он тут? Опкоды вроде и в африке опкоды...
Понятно, что теоретически можно использовать екзе как длл если есть релоки. Но и экспорт ведь должен быть. А в hh.exe и dxdiag.exe экспортов нету и тем не менее их как-то юзают!
Они могут юзать не код, а ресурсы из exe. Типа LoadIcon(LoadLibary('notepad.exe'), 1); Проблема с загрузкой exe - в релоках. В DLL они есть сегда, а в EXE их чаще всего нет за ненадобностью.
hobo если известно смещение функции относительно базы загруженного модуля, то никакой экспорт не нужен... тем более, что из екзешника может тянуться не только код, но и какие-либо данные, ресурсы...