Сейчас на форуме: tyns777, zombi-vadim (+5 невидимых) |
eXeL@B —› Программирование —› Загрузка PE64 файла из памяти |
Посл.ответ | Сообщение |
|
Создано: 26 апреля 2015 13:23 · Поправил: im_infamous · Личное сообщение · #1 День добрый. Интересуюсь загрузкой произвольного PE файла из памяти. Нашел код для Отсюда два вопроса: первый - как все-таки загрузить PE64 из памяти? Желательно код, но и просто объяснение сгодится. Второй: вообще вся эта загрузка интересует с точки зрения реализации механизма, наподобие Copymem как в арме, так что буду признателен за линки на код, если таковой имеется в паблике. P.S. как я понимаю, все эти телодвижения по загрузке будут сопровождаться бурным детектом пары десятков ав? |
|
Создано: 26 апреля 2015 13:57 · Личное сообщение · #2 |
|
Создано: 27 апреля 2015 08:00 · Поправил: im_infamous · Личное сообщение · #3 Сложности нет никакой: взял код, что по ссылке, копипастой поменял везде типы данных на х64, сменил х86 регистры на х64 где надо и вроде ок, компилится, трасса такая же, как на х86 получается, если бы не одно но. Конечная WriteProcessMemory, которая, по идее, должна залить образ в процесс, не отрабатывает корректно, а почему - хз. Как водится, знал бы в чем соль - не создавал бы тему. Короче, слова это, конечно, хорошо, но, если не видеть код, то дело вряд ли двинется. Собсна, в аттаче сорцы. Если кто укажет в чем ошибка - буду крайне признателен. f089_27.04.2015_EXELAB.rU.tgz - memexec.7z |
|
Создано: 27 апреля 2015 11:09 · Личное сообщение · #4 Во-первых, заменять надо было не бездумно типы и регистры, а читать и править ещё и код, типа WriteProcessMemory(piProcessInformation.hProcess, (LPVOID)((int64_t)cContext.Rbx + 8), &ntNtHeader.OptionalHeader.ImageBase, 4, (uint64_t*)&lWritten) Откуда тут размер 4? Во-вторых, никто не обещал, что регистры будут те же самые. В частности, в х64 не EBX и не 8. А RCX или RDX, не помню уже на память. |
|
Создано: 13 мая 2015 02:23 · Поправил: im_infamous · Личное сообщение · #5 Совсем забыл пастануть решение. Дабы не увеличивать энтропию, свой велосипед не привожу. По ссылке готовое. |
eXeL@B —› Программирование —› Загрузка PE64 файла из памяти |