Единственный способ сделать это с помощью отладчика или API отладки (ptrace
для linux).
В основном, что вы хотите сделать, это:
- attachк процессу (
PTRACE_ATTACH
) - получить контекст потока (
PTRACE_GETREGS
) - из контекста потока получить значение указателя стека (вероятно
esp
или rsp
) - чтение памяти из процесса с использованием ptrace, начиная с адреса указателя стека (
PTRACE_PEEKDATA
или /proc/<pid>/mem
) - отсоединение от процесса (
PTRACT_DETACH
)
Оттуда анализ в значительной степени зависит от вас.Вы можете проверить мой отладчик edb .Для более подробной информации, конечно, вы должны man ptrace