Извлечение памяти из программ на С ++

Я заинтересован в извлечении доступа к памяти определенной программы.

Я ищу следующий список, например, для конкретного исполнения:

[R\W]  [Address]   [numBytes]     
R         0x0000012d32a21   0x4

Я уже пробовал valgrind и mtrace, а также их инструменты.

Все они, похоже, возвращают более общую статистику или статистику утечек памяти.

Я заинтересован во всех данных доступа к памяти.

Я часами гуглял по ней и нахожу много статей, посвященных этой проблеме, но не работающего открытого исходного кода.

Ценю твою помощь

2 ответа

Инструмент лакей Valgrind должен дать вам необходимую информацию.

См. http://www.valgrind.org/docs/manual/lk-manual.html параметр --trace-mem= [по умолчанию: нет]

Вы можете посмотреть в Пин.

Из описания:

Pin - это динамический бинарный инструментарий для архитектур наборов команд IA-32 и x86-64, позволяющий создавать инструменты динамического анализа программ.

Вы должны быть в состоянии найти или написать pintool, который делает то, что вам нужно. Например, этот. Связанный пример - это почти то, что вы просите. Вам нужно будет добавить IARG_MEMORYREAD_SIZE а также IARG_MEMORYWRITE_SIZE к приборам, но это выглядит довольно тривиально.

Другие вопросы по тегам