Освободить место для добавленного байт-кода (машинного кода) в исполняемом файле Windows PE - PullRequest
2 голосов
/ 11 апреля 2011

Этот вопрос связан с реверс-инжинирингом / бинарным исправлением в Windows.

Мне нужен бесплатный инструмент для добавления ассемблера (или машинного кода) в уже созданный исполняемый файл. Я говорю не о Java или .NET, а о собственном байт-коде (машинный код x86).

Кроме того, что если мне нужно больше места? Должен ли я добавить еще один раздел? какой инструмент существует для расширения exe PE?

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

Если вы хотите на самом деле редактировать сам PE-файл, для того, чтобы Olly сделал свое дело, вам нужно будет дополнить его инструментом, который может запустить процесс и восстановить PE-файл, например LordPE. LordPE может добавить разделы для вас, он делает это для своих собственных целей.

Для редактирования бинарного файла для добавления разделов вы также можете попробовать инструмент "Stud PE", он может добавлять разделы для вас, но вам придется поработать с самим файлом, чтобы получить байты сборки, в которые вы хотите добавить бинарный

Самый простой способ сделать это вручную - это увеличить размер последнего раздела в двоичном файле (поле SizeOfRawData раздела в заголовке PE), увеличить поле SizeOfImage заголовка PE и сбросить байты в конце файл. Вам также может потребоваться установить исполняемый флаг для последнего раздела (в заголовке PE).

0 голосов
/ 11 апреля 2011

Есть несколько способов добавить ваш код в существующий файл pe. Один из способов - найти пещеру в разделе кода, пещера - это, как правило, секция, заполненная нулями. Другой (лучший) способ - добавить Раздел в PE-файл, чтобы у вас было место для вашего кода. Это немного сложно, так как вы должны вручную настроить различные указатели, такие как, SizeOfImage, RawSize и т. Д. И т. Д.

Для этого вы можете использовать LORDPE (Google it).

...