После размещения много вопросов на Ptrace (самые последние 5 вопросов мои :() я, наконец, получил желаемый результат, когда я заменилРазница между ptrace (PTRACE_PEEKUSER) и ptrace (PTRACE_PEEKDATA)?
reg_val [1] = ptrace (PTRACE_PEEKDATA, ребенок, 4 * EBX , NULL);
с
reg_val [1] = ptrace (PTRACE_PEEKUSER, ребенок, 4 * EBX, NULL);
Разница упоминается в человеке странице, как это
- peektext читает слово в местоположении адрес в памяти ребенка.
- peekuser читает слово в позиции addr в области ПОЛЬЗОВАТЕЛЯ.
Я не могу понять эту разницу только на странице руководства. Может ли кто-нибудь просветить меня по этому поводу?
'PTRACE_PEEKDATA предназначен для таких вещей, как регистровые значения и другая информация об отладке.' Не являются ли значения ebx, ecx? : О, я так и думал.Регистрирует, что все вы имели в виду? 'EIP' (указатель инструкции)? –
извините за опечатку. Я исправил это. ** PTRACE_PEEKUSER ** для регистров и ** NOT ** ** PTRACE_PEEKDATA ** –
Ваше последнее предложение меня сбивает с толку (это опечатка?). Вы сказали, что peekdata - это данные программы. отлично с tat. Теперь снова вы говорите, что peekdata - это регистры! Вы имели в виду peekuser ?? –