Làm thế nào để xem nội dung của bộ nhớ RAM? [đóng cửa]


14

Có cách nào để xem nội dung của bộ nhớ RAM không? Từ byte đầu tiên cho đến byte cuối cùng. Tôi muốn xem HĐH và tất cả các tiến trình đang chạy trên nó được đặt trong RAM. Điều này có thể không?


1
Là một người dùng xử lý trong môi trường bộ nhớ được bảo vệ , bạn chỉ có quyền truy cập vào bản sao không gian bộ nhớ ảo của người dùng. Không gian bộ nhớ hạt nhân, không gian bộ nhớ ảo của người dùng khác và bộ nhớ vật lý không sử dụng đều được bảo vệ khỏi con mắt tò mò của bạn. Mặt khác, ảnh chụp nhanh thời gian ngẫu nhiên của SDRAM vật lý sẽ không có ý nghĩa nhiều trừ khi bạn biết ánh xạ bộ nhớ ảo.
mùn cưa

Bộ nhớ truy cập ngẫu nhiên? Vậy bảng phân bổ trang?
ta.speot.is

Chính xác thì bạn đang cố đạt được điều gì? meta.stackexchange.com/questions/66377/what-is-the-xy-pro
Hiệu

Có lẽ bạn sẽ hạnh phúc hơn nhiều với một số công cụ cho thấy cách phân bổ bộ nhớ, so với việc thực sự nhìn vào 1 và 0.
Daniel R Hicks

1
đó chỉ là vì tò mò
Osta

Câu trả lời:


8

Bạn có thể sử dụng trình gỡ lỗi kernel, cho phép truy cập bộ nhớ "thô", như SoftICE cho Windows . Bạn cũng có thể định cấu hình GDB để hoạt động như một trình gỡ lỗi cho nhân Linux . Nếu một máy ảo là một tùy chọn, một số phần mềm ảo hóa hỗ trợ lưu trạng thái của máy (bao gồm RAM) vào đĩa, sau đó có thể được phân tích thêm . Tuy nhiên, cần lưu ý rằng hầu hết các hệ điều hành "hiện đại" sử dụng ngẫu nhiên bố cục không gian địa chỉ (ASLR). Bản đồ bộ nhớ vật lý thực sự của hệ thống được phân chia một cách có chủ đích để giúp giảm thiểu các vấn đề bảo mật và khai thác khác nhau (ví dụ như bộ đệm stack / heap tràn).

Tuy nhiên, đối với một chương trình nhất định chạy trong một hệ điều hành hiện đại, bạn có thể có được bản đồ bộ nhớ logic cho một quy trình / luồng đã cho - miễn là bạn có các biểu tượng gỡ lỗi và trình gỡ lỗi thích hợp. Nếu bạn muốn có một cái nhìn tổng thể, nếu phần mềm / phần cứng sử dụng bộ nhớ ảo , tình hình sẽ trở nên phức tạp hơn nhiều. Một lần nữa, nếu bạn thực sự muốn những gì chỉ có trên RAM, hãy xem đoạn đầu tiên.


9

Trên Windows, nội dung của bộ nhớ vật lý có thể được truy cập thông qua \Device\PhysicalMemoryđối tượng trong Trình quản lý đối tượng . Điều này đòi hỏi quyền truy cập cấp kernel vào hệ thống, có nghĩa là bạn sẽ cần cài đặt một chương trình, rất có thể là trình điều khiển chế độ kernel, để truy cập đối tượng này.

Trên Linux, nội dung của bộ nhớ vật lý có thể được truy cập trực tiếp dưới dạng dữ liệu nhị phân bằng cách đọc /dev/memdưới dạng root. Xem / dev / mem là gì? mem(4)trang người đàn ông để biết thêm chi tiết.

Tôi không chắc tại sao bạn cần xác định vị trí của hệ điều hành và các quy trình trong bộ nhớ vật lý, mặc dù ...


3
Trên Windows, bạn có thể, trên thực tế, cởi mở \Device\PhysicalMemory(tương đương /dev/kmem), như RAMMapPhysMem tiện ích làm.
dùng1686

1
Không còn nữa. Kể từ Server 2003 và trong tất cả các phiên bản mới hơn, \DevicePhysicalMemoryđối tượng không thể được mở từ chế độ người dùng. RAMmap và hầu hết các công cụ hệ thống khác bao gồm trình điều khiển chế độ nhân để thực hiện phần công việc đó.
Jamie Hanrahan
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.