안녕하세요
리눅스 커널모듈상에서 페이지 테이블을 덤프해보려고 합니다
페이지 디렉토리를 덤프하는것은
CR3 레지스터에 있는 물리주소값에 __va 매크로등으로 0xC0000000 를 더하여
페이지 디렉토리의 시작을 가리키는 가상주소를 얻고
이것을 통해서 1024 바이트를 덤프를 하여 얻을수 있었습니다.
또는 task 구조체속의 mm 구조체속의 pgd 를 통해서도 얻을수 있고요,
그런데 PGD 의 내용을 보고 그 안에있는 특정 엔트리를 통해서
페이지 테이블의 내용을 덤프뜨고싶은데, 방법을 잘 모르겠습니다.
단순하게 PGD 에 있는 어떤 엔트리에 있는 페이지테이블의 물리주소에
똑같이 __va 매크로로 0xC0000000 를 더해서 가상주소를 얻고
이것에서 1024바이트를 덤프했는데 이렇게 하는게 맞는건지 모르겠네요
덤프뜬 결과 막