Добавление функции в бинарный файл Linux - PullRequest
1 голос
/ 20 ноября 2011

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

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

Может также пригодиться Linux ABI X86-64 , а также Linux Assembly Howto

0 голосов
/ 20 ноября 2011

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

...