Подсчет вызовов функций в исполняемом файле без таблицы символов

В настоящее время я ищу быстрый способ реализовать мою идею, для которой мне понадобится числовой подсчет для всех функций, вызываемых внутри двоичного исполняемого файла, во время выполнения. Насколько мне известно, инструмент Intel PIN может подсчитывать обычные вызовы и количество инструкций внутри этих процедур (см. здесь: https://software.intel.com/sites/landingpage/pintool/docs/67254/Pin/html/index.html#ProcInstrCount). Но что происходит, когда таблица символов недоступна? Может ли PIN справиться с этим?

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

Немного предыстории: я хочу сгруппировать определенные вызовы функций во время выполнения. Например, я хочу сгруппировать все периодические вызовы функций внутри кластера «обновления». Кроме того, я хочу иметь возможность определить, какие функции вызываются в результате действия пользователя (например, нажатия кнопки), а затем снова сгруппировать эти функции. В конце концов, я хочу иметь довольно четкое представление о том, какие функции выполняются, когда. Это вообще возможно?

Спасибо за любой совет


person puelo    schedule 15.01.2015    source источник


Ответы (1)


Я смог достичь своей цели с помощью frida (http://www.frida.re). Очень крутой и мощный инструмент!

person puelo    schedule 08.03.2015