Добавление функции в бинарный файл Linux

Как часть домашнего задания для моего класса безопасности, я должен "добавить простую функцию, которая печатает"Hello, World!"в скомпилированный двоичный файл C Linux". Предоставленный бинарный файл является просто скомпилированным main функция с 10 NOPв этом.

Обычно я написал бы код, необходимый для NOP раздел, но нам было явно сказано добавить новую функцию в программу.

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

РЕДАКТИРОВАТЬ: Этот вопрос звучит несколько похоже.

РЕДАКТИРОВАТЬ 2: Поиск "инъекции ELF" дает много интересных результатов.

2 ответа

Решение

Возможно, вам нужно больше узнать об ELF (особенно, если вы хотите, чтобы программа могла "заражать" любой двоичный файл Linux, а не только тот, который у вас есть).

Также может пригодиться приложение Linux ABI X86-64, а также руководство по сборке Linux

Вы можете завершить основную функцию, а затем запустить новую функцию в NOP, но прежде чем завершить основную функцию, вызовите новую функцию, которую вы добавили после завершения основной функции.

Другие вопросы по тегам