[apple] OSX에서 / dev / mem에 액세스하는 방법은 무엇입니까?

OSX에서 / dev / mem (또는 / dev / kmem, / dev / pmap) 장치에 어떻게 액세스 할 수 있습니까?

내가 아는 한 그것은 어느 시점에서 제거되었습니다.

어떻게 든이 노드를 수동으로 만들거나 물리적 메모리를 덤프하는 다른 방법을 만들 수 있습니까?

보다:



답변

에 따르면 맥 OS X의 86 버전에 액세스 커널 메모리 , /dev/mem그리고 /dev/kmem애플이 인텔 프로세서를위한 OS X를 발표 할 때 제거되었다.

(우수한) 기사는 메모리 장치를 다시 활성화하는 방법 , 즉 kmem=1커널 부팅 인수를 사용하는 방법 도 설명 합니다 .

아래의 주석으로, 그 주 , 맥 OS 10.15에서 카탈리나 (그리고 아마도 맥 OS 10.12 시에라 때문에), NVRAM 설정은 맥이 복구 모드로 부팅 될 때 변경 될 수 있습니다 . 복구 모드로 들어가 려면 Mac의 전원을 켜고 로고가 나타날 때까지 즉시 -R을 누르고 메뉴 표시 줄의 유틸리티 메뉴에서 터미널을 실행하고 다음을 실행하십시오.

sudo nvram boot-args="kmem=1"

재부팅합니다. 다음 두 장치가 표시되어야합니다.

$ 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

(OS X Mavericks 10.9.2와 같은 이전 버전의 macOS에서는 운영 체제 내에서 메모리 장치를 재 활성화 할 수 있으므로 터미널을 실행하고 위의 명령을 입력하고 재부팅하면됩니다.)

Mac이 부팅되지 않거나 문제가있는 경우 KB HT1379의optionPR “NVRAM / PRAM 재설정”에 설명 된대로 시작 소리가 두 번 들릴 때까지 키 를 길게 눌러 NVRAM을 재설정하십시오. NVRAM 및 PRAM 정보 .

인수를 재설정하려면 결과를 인쇄하지 않는 sudo nvram -d boot-args것을 입력 하고 확인하십시오 nvram -p | grep boot-args.


답변

macOS Sierra에서 작동한다고 생각합니다! comex의 프로젝트를 다운로드했습니다.
Kmem Project
kext를 컴파일하고 권한을 수정 한 다음로드했습니다! 사용 단말기 나는에 갔다 /devls모두 보여 memkmem

편집 : 프로젝트를 다운로드하면 최신 코드를 사용하도록 Xcode에서 컴파일러를 변경해야합니다 (예 : 다른 버전이 작동하는지 모르겠습니다 …) 결과에 빠르게 액세스하려면 이미 만들었습니다. macOS Sierra에서 컴파일되는 comex 프로젝트 포크! 시에라 포크에 대한 Kmem

다시, 이것은 내 것이 아니라 comex의 작품입니다. 방금 컴파일러 설정을 변경하고 업로드했습니다! 🙂


답변