01/10/2018, 00:09

Hệ điều hành linux vùng nhớ của process

Các bạn giúp mình:
Cho PID của 1 process làm cách nào để lấy địa chỉ đầu và cuối của vùng heap, data, code, stack( đầu thui) của process. Thanks.

Phan Hoàng viết 02:16 ngày 01/10/2018

Nếu mình nhớ không nhầm thì không dùng lệnh để lấy được vì OS phân quyền. Bạn thử dùng lệnh này xem sao: gcore {pid} với {pid} là process_id.

Nếu dùng shell thì có thể dùng lệnh: cat /proc/{id}/mem và /proc/{pid}/maps để lấy các thông số về memory mà bạn cần. Tuy nhiên, cần attackh shell này vào trong process nhờ lệnh ptrace.
(à, cái này chỉ ở trên Linux, còn Windows và Macs thì chưa thử).

Để mai nếu rảnh viết shell theo yêu cầu của bạn xem sao (trên cả 3 OS).
Mình thấy ứng dụng Activity Monitor (MacOS) nó đọc được các sample, offset, …

tritueviet viết 02:17 ngày 01/10/2018

Chào bạn, mình cũng đang cần tìm hiểu sâu về các lệnh trên linux, cho mình hỏi sâu hơn về việc bạn attach shell vào process nhờ lệnh ptrace ? cái này mình chưa rõ ptrace ntn.

Bài liên quan
0