Khám phá nội dung RAM


12

Tôi đang sử dụng Cơ sở dữ liệu redis và muốn khám phá nội dung của RAM mà ứng dụng đang sử dụng.

Tôi cảm thấy lời giải thích tại sao tôi muốn làm điều này sẽ có ý nghĩa hơn sau đó câu hỏi tôi sẽ hỏi.

Redis là một kho lưu trữ khóa đơn giản lưu trữ dữ liệu nhị phân. Tôi nghĩ rằng đó sẽ là một nơi tốt để khám phá những thứ như mã hóa và sẽ rất thú vị với tôi khi làm những việc như lướt qua RAM để tìm bộ dữ liệu nhị phân, làm những việc như tìm kiếm các mẫu đơn giản; có thể khám phá ý tưởng viết một ngôn ngữ truy vấn bé tìm kiếm trong RAM.

Tôi đã có ý tưởng này sau khi đọc chương trong SICP về các ngôn ngữ truy vấn.

Bất kỳ suy nghĩ về nơi bắt đầu? Ban đầu, tôi muốn hỏi "Hãy cho tôi không gian địa chỉ mà ứng dụng này đang chạy, xin vui lòng" cho hệ thống.

Câu trả lời:


7

Bạn có thể sử dụng gdb để truy cập bộ nhớ của một tiến trình.

Ngoài ra, bạn nên xem hệ thống tệp "/ Proc" - nó chứa các tệp giả cho mọi quy trình; một số trong số họ có thể chứa thông tin thú vị


7

cat /proc/[pid]/maps theo các trang web của Proc.

Trông giống như những gì bạn muốn. Nếu bạn cần pid, lấy nó từ ps hoặc bất kỳ công cụ nào khác.

Đó là địa chỉ tìm không gian địa chỉ sử dụng. Một trong những nghiên cứu sinh tại defcon năm ngoái đã thực hiện commemotethread trên linux. Vì vậy, bạn có thể làm điều đó ... sau đó đọc bộ nhớ tùy ý theo cách đó.

Tín dụng cho psusi để chỉ ra rằng pmap -x [pid]dễ đọc hơn.


3
Lưu ý rằng pmapđịnh dạng thông tin này để nó dễ đọc hơn.
psusi

6

Sử dụng trình gỡ lỗi, đó là những gì họ làm.

Nếu bạn muốn tự lăn, tất cả đều phải trải qua ptrace.

Bạn có thể thấy bản đồ bộ nhớ của một quá trình (mục lục cho bộ nhớ) trong /proc/$pid/mapsvà đọc toàn bộ nội dung bộ nhớ từ đó /proc/$pid/mem. Bạn không thể mở tệp sau đó một cách bình thường, xem Làm thế nào để tôi đọc từ / Proc / $ pid / mem trong Linux?


1
Bạn đã vô cùng hữu ích với một số câu hỏi của tôi. Bạn có đề xuất bất kỳ cuốn sách nào để đọc thường liên quan đến HĐH Linux hoặc các bài viết web đặc biệt thú vị không?
MageProspero
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.