Чтение памяти другого процесса в OS X?
Матасано Чарген некоторое memory время назад опубликовал хороший macos пост о переносе кода отладки ptrace на OS X, который включал macos в себя обучение чтению и macosx записи памяти в другом процессе macosx (среди прочего).
It has to work, otherwise GDB wouldn't:
Оказывается, Apple macosx в своей бесконечной мудрости ptrace выпотрошила
ptrace()
. На справочной macos странице OS X перечислены ptrace следующие коды запросов:
PT_ATTACH
— выбрать процесс для отладкиPT_DENY_ATTACH
— чтобы процессы могли остановить себя от отладки
[...]Нет macosx упоминания о чтении или записи memory памяти или регистров. Это mac было бы обескураживающим, если macosx бы на странице руководства c не упоминались также
PT_GETREGS
,PT_SETREGS
,PT_GETFPREGS
и ptracePT_SETFPREGS
в разделе кодов ошибок. Итак, я mac проверилptrace.h
. Там я нашел:
PT_READ_I
— прочитать слова инструкцииPT_READ_D
— читать слова данныхPT_READ_U
— чтобы прочитать данные области U, если вы достаточно взрослый, чтобы помнить, что такое область U
[...]Одна osx проблема решена. Я могу читать macosx и записывать память для точек macos останова. Но я все равно ptrace не могу получить доступ к macos регистрам, а мне нужно уметь mac возиться с EIP.
c
macos
memory
ptrace
Чтение памяти другого процесса в OS X?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.