Sau khi đăng rất nhiều câu hỏi về ptrace (5 câu hỏi gần đây nhất là của tôi :() Cuối cùng tôi nhận được kết quả mong muốn khi tôi thaySự khác biệt giữa ptrace (PTRACE_PEEKUSER) và ptrace (PTRACE_PEEKDATA) là gì?
reg_val [1] = ptrace (PTRACE_PEEKDATA, trẻ em, 4 * EBX , NULL);
với
reg_val [1] = ptrace (PTRACE_PEEKUSER, trẻ em, 4 * EBX, NULL);
Sự khác biệt nêu tại trang người đàn ông giống như
- peektext này đọc một từ vào addr vị trí trong bộ nhớ của trẻ.
- người đọc giả đọc một từ tại vị trí bù đắp trong vùng USER của trẻ.
Tôi không thể hiểu sự khác biệt này một mình từ trang người đàn ông. Có ai có thể dạy tôi nhiều hơn về điều này không ??
'PTRACE_PEEKDATA dành cho những thứ như giá trị đăng ký và thông tin gỡ lỗi khác.' Không phải là giá trị đăng ký ebx, ecx ?? : O Tôi nghĩ vậy.Bằng cách đăng ký tất cả những gì bạn đã có nghĩa là gì? 'EIP' (con trỏ chỉ dẫn) ?? –
xin lỗi vì lỗi đánh máy. Tôi sửa nó rồi. ** PTRACE_PEEKUSER ** là dành cho thanh ghi và ** NOT ** ** PTRACE_PEEKDATA ** –
Câu cuối cùng của bạn gây nhầm lẫn cho tôi (có phải là lỗi đánh máy không?). Bạn đã nói peekdata dành cho dữ liệu chương trình. tốt với tat. Bây giờ một lần nữa bạn nói peekdata là dành cho đăng ký !! Ý bạn là người tìm kiếm? –