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

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

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

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

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

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

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

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

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

1

Решение

Вы можете посмотреть в Штырь.

Из описания:

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

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

1

Другие решения

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

Увидеть http://www.valgrind.org/docs/manual/lk-manual.html
опция —trace-mem = [по умолчанию: нет]

1

По вопросам рекламы [email protected]