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


12

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

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

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

보다:

답변:


12

에 따르면 맥 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.


1
나는 macOS Sierra 에서이 방법을 시도했지만 장치가 /dev..
Zohar81

1
어느 시점에서, nvram 설정은 Mac이 복구 모드로 부팅 된 경우에만 변경 될 수 있습니다. 따라서 Mac의 전원을 켜고 로고가 나타날 때까지 Cmd-R을 즉시 누른 다음 복구 설치 UI에서 터미널로 이동하여 명령을 실행하면 작동합니다. 이것은 어제 OS X Catalina에서 저에게 효과적이었습니다.
neal

4

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.