RDot: White Hat Security Community

RDot: White Hat Security Community (https://rdot.org/forum/index.php)
-   Software development (https://rdot.org/forum/forumdisplay.php?f=19)
-   -   Внедрение кода в exe файл (С++) (https://rdot.org/forum/showthread.php?t=2804)

<Gh0St> 30.07.2013 21:55

Внедрение кода в exe файл (С++)
 
Всем привет!
Сразу оговорюсь, изучаю этот вопрос в образовательных целях.
Занялся изучением PE-заголовка, теперь пытаюсь внедрить код в exe'шник, но ничего не получается, только запутался.

Пробовал проецировать файл в память, пробовал работать с файловыми потоками С++, проблема везде одна - идёт перезапись байт в файле. А нужна дозапись. Можно было бы считать тело файла, добавить свой код и записать всё это обратно, но и тут ошибка.

Внедряемый код любой, пусть: nop, nop, nop, xor eax, eax, nop, nop, nop (в опкодах); главное, чтобы был заметен.
Внедрить код пытаюсь на точку входа, т.е., чтобы выполнился внедряемый код, а потом пошёл оригинальный код. Считываю структуры PE-заголовка, проверяю сигнатуры, затем перехожу к ntHeaders.OptionalHeader.AddressOfEntryPoint и пытаюсь записать код.

Второй день с этим вожусь, кучу статей перечитал, ничего не получается.

Подскажите, что я упустил? Как тут нужно действовать?
Благодарю.

chupakabra 30.07.2013 22:41

Цитата:

а потом пошёл оригинальный код.
он не будет рабочим после такого "сдвига". Но если уж понадобились такие извращения, то скопируйте сдвигаемый кусок в буфер (memcpy), разместите свои nop-ы, потом верните код из буфера обратно по адресу со сдвигом, не понимаю в чем проблема?

swt1 14.08.2013 01:36

nop, nop, nop, xor eax, eax, nop, nop, nop
похоже не совсем, но похоже на криптор.
не бро, такими методами ты не допилишь.
либо пили последнюю секцию, но это из другой оперы,.


Часовой пояс GMT +3, время: 21:30.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot