Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запуск PE файла из памяти

841
27 июля 2008 года
_nic
199 / / 29.07.2006
Допустим есть считанный экзешник в бинарном режиме.
Вопросы следующие
1.Как,сколько и где под него правильно выделить память?
2.Как правильно расположить его образ в этом выделенном участке памяти?
3.Как быть с таблицей импорта?
4.Как передать управление на его точку входа и при этом высвободить память от загрузчика?
Очень интересуют примеры на С .На асемблере и паскале находил но эти языки я слишком плохо знаю :(
261
27 июля 2008 года
ahilles
1.5K / / 03.11.2005
Цитата: _nic

1.Как,сколько и где под него правильно выделить память?
2.Как правильно расположить его образ в этом выделенном участке памяти?
3.Как быть с таблицей импорта?
4.Как передать управление на его точку входа и при этом высвободить память от загрузчика?


читай документацию по формату PE. В пунктах 1 и 2 при мэпинге теперь может помочь флаг SEC_IMAGE.

Цитата: _nic

Очень интересуют примеры на С .На асемблере и паскале находил но эти языки я слишком плохо знаю :(


а вот это очень плохо! понимаешь: НАДО ЗНАТЬ!!! как минимум чтобы мог понять что там делается, и написать это на С.

841
27 июля 2008 года
_nic
199 / / 29.07.2006
Сомневаюсь что на С имеется аналог xinvoke :(
261
27 июля 2008 года
ahilles
1.5K / / 03.11.2005
ну тогда, я думаю, тяжело тебе придётся :) xinvoke это всего лишь макрос. И уверен на 99% что его ты увидел в статье на "ВАСМЕ". xinvoke это базонезависимый макрос для вызова API.
841
28 июля 2008 года
_nic
199 / / 29.07.2006
Если управление передается с точки входа работающего файла А на точку входа загруженного файла Б, то не значит ли это что при размещение файла Б в памяти можно не грузить в выделеную под него память DOS заглушку и фаловый заголовок PE файла?
3
28 июля 2008 года
Green
4.8K / / 20.01.2000
Цитата: _nic
Если управление передается с точки входа работающего файла А на точку входа загруженного файла Б, то не значит ли это что при размещение файла Б в памяти можно не грузить в выделеную под него память DOS заглушку и фаловый заголовок PE файла?


А какой смысл НЕ грузить?

841
28 июля 2008 года
_nic
199 / / 29.07.2006
Цитата: Green
А какой смысл НЕ грузить?


Ну насколько я понял в памяти ещё будут оставатся эти части от файла А и тогда неясно зачем грузить эти части файла Б

14
28 июля 2008 года
Phodopus
3.3K / / 19.06.2008
Грузить и маппить - несколько разные вещи. Так вот экзешник - промаппирован на память, поэтому некоторый его кусок убрать бывает не так-то просто. Прочитай где-нибудь что это такое, и вообще найди статью типа linkers and loaders, там должно быть все весьма и весьма подробно описано
841
28 июля 2008 года
_nic
199 / / 29.07.2006
Цитата: Phodopus
Прочитай где-нибудь что это такое, и вообще найди статью типа linkers and loaders, там должно быть все весьма и весьма подробно описано


А это точно статья.А то мне гугл выдал вот это http://books.google.com.ua/books?id=h34d_jr2iikC&dq=linkers+and+loaders
ЗЫ:подскажите нормальное описание спецификации PE файлов ,а то через гугл можно найти только тупые цитирования из WINNT.h

14
28 июля 2008 года
Phodopus
3.3K / / 19.06.2008
Нет, не точно :) Это я пример привел, хотя в этой публикации ответы на твои вопросы тоже должны быть. А так - вдруг че на русском найдешь..
Я на нее знаю такую ссылку
841
28 июля 2008 года
_nic
199 / / 29.07.2006
Я правильно понимаю что секции описаны в таблице обьектов?
3
28 июля 2008 года
Green
4.8K / / 20.01.2000
Цитата: _nic
Я правильно понимаю что секции описаны в таблице обьектов?


М-да... и это только начало...
Это элементарнейший вопрос, на который ты и сам бы мог найти ответ.
Если ты не можешь справиться с этим, то врядли тебе удастся реализовать то, что ты задумал, т.к задача не так проста, как может показаться, но не теми вопросами, котрые ты задаешь.

Вот ссылки, читай, учись:
http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx
http://rsdn.ru/article/baseserv/pe_coff.xml
http://www.wasm.ru/article.php?article=green2red02
http://www.wasm.ru/doclist.php?list=2

а вот это вообще практически полностью освещает твою проблему:
http://www.joachim-bauch.de/tutorials/load_dll_memory.html
http://www.wasm.ru/article.php?article=packlast01
http://www.wasm.ru/article.php?article=packers2

P.S. Я разработал очень оригинальный способ загрузки исполняемых файлов (как Native, так и Managed) из памяти и даже запуска процессов из памяти (т.е. можно создать процесс не связаный с каким-либо файлом). Даже написал тестовый EXE-пакер (не путайте с тем, что выкладывал на форуме, тот уже прошлый век). Теперь вот думаю, куда бы пристроить ($$$) эту инновационную технологию...

841
29 июля 2008 года
_nic
199 / / 29.07.2006
Вроде по немногу начинаю понимать структуру РЕ файла.Только вот одного по прежнему немогу понять как передать управление загруженному файлу :( Засунуть что ли в EIP адрес его точки входа?
261
29 июля 2008 года
ahilles
1.5K / / 03.11.2005
передача управления - это команда jmp или goto в С.
3
29 июля 2008 года
Green
4.8K / / 20.01.2000
Цитата: ahilles
передача управления - это команда jmp или goto в С.


Но лучше всего call, т.е. просто вызов ф-ции по указателю: pMain()
Тип указателя и чем инициализировать, догадайся сам, раз уж начал понимать структуру PE.

261
30 июля 2008 года
ahilles
1.5K / / 03.11.2005
Цитата: Green
Но лучше всего call, т.е. просто вызов ф-ции по указателю: pMain()


да, точно. но не факт что в этой функции будет в конце ret, там может быть просто ExitProcess, поэтому толку от call будет мало.

841
31 июля 2008 года
_nic
199 / / 29.07.2006
http://www.wasm.ru/article.php?article=green2red02 статья конечно интересная но что за функция такая NTSIGNATURE ????Из примеров той статьи.
3
31 июля 2008 года
Green
4.8K / / 20.01.2000
Это не функция, а макрос.

Сейчас я научу тебя азам великого мастерства хакерства.
Если тебе что-то непонятно, то первым делом нажо не бежать в форум, а попытаться найти ответ самому. Например, с помощью хакерского инструмента Google:
http://www.google.ru/search?q=NTSIGNATURE&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_ruRU213RU213

См. первую же ссылку.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог