2015-07-17 7 views
0

Это проблема дизайна.Любой инструмент для системных вызовов статических приборов с произвольным кодом x86

Моя цель - перехватить все системные вызовы, созданные из файла общих объектов. Требование не изменять код ядра (например, не может перезаписывать таблицу syscall).

Я рассматриваю старую бинарную технику перезаписи (в частности, dyninst), чтобы выполнить эту работу. Тем не менее, dyninst очень ограничивает в письменном виде код инструментария (то есть то, что они называют BPatch_snippet); это должен быть код, определяемый dyninst. Но мне нужно вставить произвольноx86_64 инструкции к контрольно-измерительным приборам.

Существуют ли какие-либо другие статические инструменты для перезаписи двоичных данных, которые могут допускать произвольный код инструментария?

ответ

0

Можете ли вы позволить себе накладные расходы, связанные с такими инструментами, как strace?

Я не вижу опции в strace для фильтрации совместно используемой библиотекой, но, возможно, добавить, что исходный код strace будет проще, чем начать с нуля.

Существует также perf (обычно используется для записи счетчиков производительности процессора), но он имеет режим трассировки системного вызова. Я не уверен точно, что должно делать perf trace. Я думаю, вы должны использовать perf record ... your_command, с вариантами, которые записывают вызовы sys.

С perf вы можете показывать отчеты об эффективности с вещами, разбитыми по общему объекту, возможно, они похожи на системные вызовы.

 Смежные вопросы

  • Нет связанных вопросов^_^