Есть ли библиотека C для управления машинным кодом x86/x64? В частности, я хотел бы изменить функцию в адресном пространстве моей программы во время выполнения.Библиотека для управления машинным кодом во время выполнения?
Например, у меня есть функции foo
и bar
, для которого у меня есть источник или знание их внутренней работы, но не перекомпилировать библиотеку они, и я имею функцию baz
я написал сам. Теперь я хотел бы сказать такие вещи, как: «В функции foo
найдите звонок bar
и введите« baz
»прямо перед ним». Инструмент должен будет соответствующим образом скорректировать все соответствующие адреса в программе.
Я знаю, что существуют все биты и кусочки, например, есть инструменты для выполнения hotpatching функций. Я думаю, есть некоторые ограничения на то, что было бы возможно, из-за оптимизации и т. Д., Но основная функциональность должна быть возможной. Я не смог найти ничего подобного, есть ли у кого-нибудь ссылки?
Уточните поиск в Google, чтобы включить такие термины, как «кодовое ткачество», «инъекция кода» и «аспектно-ориентированное программирование». –
@Brendan: Это несколько гипотетический вопрос. Но есть ситуации, когда вы не можете сделать это технически (не можете заменить системные библиотеки) или юридически (из-за лицензирования). – jdm