eXeL@B —› Программирование —› Вопрос по PE exec |
Посл.ответ | Сообщение |
|
Создано: 06 ноября 2008 20:10 · Личное сообщение · #1 У меня возник такой вопрос: - пытаюсь запустить считаный образ exe из ап своего процесса если по пунктам, то: - собираю файл с базой например: 0х01000000 - при запуске считываю образ ехе лежащего на диске с базой 0х00400000 в память - выравниваю адреса\данные и т.д для валидного образа - выделяю память VirtualAlloc по адресу ImageBase считаного файла (в своем же процессе) размером SizeOfImage - копирую буфер считаного ехе в память по адресу (ImageBase) размером SizeOfHeaders - считываю секции (корректирую) пишу по адресу ImageBase + VirtualAddress буфер Образ+PointerToRawData размером в SizeOfRawData для каждой секции в ап своего процесса. - Создаю нить CreateThread с точкой входа на OEP образа (ImageBase + AddressOfEntryPoint) После чего получаю экзепшн, память не может быть "write\read" = Я думаю что ошибка может быть в создании нити...так как она вызывается по адресу ImageBase (моего файла) + адрес вызова CreateThread.. Если же так, то значит мне нужно скопировать участок данных с вызовом CreateThread в область образа и вызвать его от туда?? Верно...? вот вообщем-то и суть вопроса Ответите или просто укажете куда "смотреть" буду очь благодарен..Спасибо. |
|
Создано: 06 ноября 2008 21:50 · Личное сообщение · #2 |
|
Создано: 06 ноября 2008 21:57 · Личное сообщение · #3 stub Реально косяки могут быть с импортом - ведь ты же ничего не сделал, чтоб получить валидные адреса, можно восстановить IAT через GetProcAddress, например, как в некоторых упаковщиках, или самому парсить экспорт, но так как ты хочешь образ просто промеппировать и запускать - не выйдет ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 07 ноября 2008 02:28 · Личное сообщение · #4 |
|
Создано: 27 ноября 2008 23:27 · Личное сообщение · #5 |
|
Создано: 28 ноября 2008 01:28 · Личное сообщение · #6 |
|
Создано: 29 ноября 2008 21:32 · Личное сообщение · #7 |
|
Создано: 01 декабря 2008 08:38 · Личное сообщение · #8 |
eXeL@B —› Программирование —› Вопрос по PE exec |