После публикации множества вопросов на ptrace
(последние 5 вопросов принадлежат мне :(), я, наконец, получил желаемый результат, когда заменил
reg_val[1] = ptrace(PTRACE_PEEKDATA, child, 4 * EBX, NULL);
с участием
reg_val[1] = ptrace(PTRACE_PEEKUSER, child, 4 * EBX, NULL);
Разница, упомянутая на странице руководства, выглядит следующим образом
PTRACE_PEEKTEXT
читает слово по адресу адреса в памяти ребенкаPTRACE_PEEKUSER
читает слово по смещению addr в дочерней области USER
Я не могу понять эту разницу только из справочной страницы. Может ли кто-нибудь просветить меня по этому поводу??