Làm thế nào để truy cập / dev / mem trong OSX?


12

Làm cách nào tôi có thể truy cập / dev / mem (hoặc / dev / kmem, / dev / pmap) thiết bị tương đương trong OSX?

Theo như tôi biết thì nó đã bị gỡ bỏ ở một số điểm.

Tôi có thể tạo nút này bằng tay bằng cách nào đó hoặc bất kỳ cách nào khác để bỏ bộ nhớ vật lý không?

Xem:

Câu trả lời:


12

Theo Bộ nhớ nhân truy cập trên phiên bản x86 của Mac OS X , /dev/mem/dev/kmemđã bị xóa khi Apple phát hành OS X cho bộ xử lý Intel.

Bài viết (xuất sắc) cũng giải thích cách kích hoạt các thiết bị bộ nhớ , cụ thể là sử dụng kmem=1đối số khởi động kernel.

Lưu ý rằng, như đã nhận xét bên dưới bởi neal , trong macOS 10.15 Catalina (và có lẽ kể từ macOS 10.12 Sierra), cài đặt NVRAM chỉ có thể được thay đổi khi máy Mac của bạn được khởi động vào chế độ phục hồi . Để vào chế độ Khôi phục , bật nguồn máy Mac của bạn và giữ ngay lập tức -R cho đến khi logo xuất hiện, khởi chạy Terminal từ menu Tiện ích trong thanh menu, chạy:

sudo nvram boot-args="kmem=1"

và khởi động lại. Bạn sẽ thấy hai thiết bị này:

$ ls -l /dev/*mem
crw-r----- 1 root kmem 3, 1 2014-02-28 22:09 /dev/kmem
crw-r----- 1 root kmem 3, 0 2014-02-28 22:09 /dev/mem

(Trong các phiên bản trước của macOS như OS X Mavericks 10.9.2, bạn có thể kích hoạt các thiết bị bộ nhớ trong hệ điều hành, vì vậy chỉ cần khởi chạy Terminal, nhập lệnh ở trên và khởi động lại.)

Nếu máy Mac của bạn không khởi động hoặc bạn gặp bất kỳ sự cố nào , hãy đặt lại NVRAM bằng cách nhấn optionPRvà giữ phím cho đến khi bạn nghe thấy âm thanh khởi động lần thứ hai, như được giải thích trong "Đặt lại NVRAM / PRAM" trong KB HT1379 Giới thiệu về NVRAM và PRAM .

Nếu bạn muốn đặt lại đối số, nhập sudo nvram -d boot-argsvà kiểm tra nvram -p | grep boot-argskhông in bất kỳ kết quả nào.


1
Tôi đã thử phương pháp này trong macOS Sierra, nhưng nó không làm cho các thiết bị hiển thị bên dưới /dev.. có lẽ bạn có biết Apple có đóng tùy chọn này không và liệu có cách nào khác để truy cập bộ nhớ này trong 10.12 không?
Zohar81

1
Tại một số điểm, cài đặt nvram chỉ có thể được thay đổi khi máy Mac của bạn được khởi động vào chế độ phục hồi. Vì vậy, nếu bạn bật máy Mac và ngay lập tức giữ Cmd-R cho đến khi logo xuất hiện, sau đó thả xuống Terminal từ UI cài đặt Recovery và chạy lệnh, nó sẽ hoạt động. Điều này chỉ làm việc cho tôi trên OS X Catalina ngày hôm qua.
neal

4

Tôi nghĩ rằng tôi đã có nó để làm việc trên macOS Sierra! Tôi đã tải xuống dự án của Comex: Dự án Kmem Tôi đã biên dịch kext, sửa các quyền và sau đó tải nó! Sử dụng thiết bị đầu cuối tôi đã đi vào /devlshiển thị cả memkmem...

Chỉnh sửa: Nếu bạn tải xuống dự án, bạn sẽ chỉ cần thay đổi trình biên dịch trong Xcode để sử dụng bản mới nhất (ví dụ ... Tôi không biết nếu các phiên bản khác hoạt động mặc dù ...) Để truy cập nhanh vào kết quả tôi đã thực hiện một nhánh của dự án của Comex được biên dịch trên macOS Sierra! Kmem cho ngã ba Sierra

Một lần nữa, đây là công việc của camex, không phải của tôi, tôi chỉ thay đổi cài đặt trình biên dịch và tải nó lên! :)

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.