Добавление функции в бинарный файл Linux
Как часть домашнего задания для моего класса безопасности, я должен "добавить простую функцию, которая печатает"Hello, World!"в скомпилированный двоичный файл C Linux". Предоставленный бинарный файл является просто скомпилированным main
функция с 10 NOP
в этом.
Обычно я написал бы код, необходимый для NOP
раздел, но нам было явно сказано добавить новую функцию в программу.
Я понятия не имею, как это сделать. Я попытался поместить некоторый код в конец двоичного файла, но это, кажется, разрушает его. Может кто-нибудь прояснить это для меня?
РЕДАКТИРОВАТЬ: Этот вопрос звучит несколько похоже.
РЕДАКТИРОВАТЬ 2: Поиск "инъекции ELF" дает много интересных результатов.
2 ответа
Возможно, вам нужно больше узнать об ELF (особенно, если вы хотите, чтобы программа могла "заражать" любой двоичный файл Linux, а не только тот, который у вас есть).
Также может пригодиться приложение Linux ABI X86-64, а также руководство по сборке Linux
Вы можете завершить основную функцию, а затем запустить новую функцию в NOP, но прежде чем завершить основную функцию, вызовите новую функцию, которую вы добавили после завершения основной функции.