2017-10-13 1 views
-1

qemu와 gdb를 사용하여 리눅스 커널을 디버깅하려고합니다. 문제는 gdb가 중단 점에서 멈추지 않는다는 것입니다. 저는 kASLR이 gdb를 혼란스럽게하기 때문에 kASLR을 끄는 것이 도움이 될 수 있다는 것을 조사했습니다.커널 커맨드 라인에 nokaslr 추가하기

- 해당 커널을 게스트에 설치하십시오.

+ - 커널을 게스트에 설치하고 커널 명령 줄 에 "nokaslr"을 추가하여 KASLR을 끕니다.

지금 나는 그것이 라인과 그렇게 할 수있는 방법을 명령 nokaslr를 추가 것이 무엇을 의미하는지 모른다. 어떤 생각?

+0

커널에'kaslr'이 있는지 확인해야합니다. –

답변

2

커널에 명령 줄을 전달하는 방법은 시작 방법에 따라 다릅니다. -kernel-initrd 옵션을 사용하여 QEMU가 특정 커널을 직접 부팅하도록 지시하는 경우 명령 줄을 지정하려면 -append 옵션이 필요합니다 (이미있는 경우 nokaslr을 공백으로 구분하고 필요한 경우 전체 커널 명령 줄을 따옴표로 묶어야합니다. 쉘에서 요구하는대로).

이것이 사실이 아니라면, 에뮬레이트 된 BIOS가 실제 커널을로드하는 부트 로더 (아마도 GRUB)를 시작합니다. this에 따르면 VM 부팅시 Shift 키를 누른 채로 부팅 메뉴로 이동해야 할 수 있습니다. 그렇다면 GRUB은 사용자가 (AFAIK, 임시로) 편집 부팅 매개 변수 수 있습니다. GRUB 2.02가 설치된 우분투 17.04에서 편집하고 싶은 메뉴 항목에서 "e"를 눌러야합니다. 그런 다음 linux 명령 뒤에 /boot/vmlinuz...과 커널 명령 줄이 오는 것을 확인합니다. 그 행의 끝에 nokaslr을 입력하고 Ctrl-x를 눌러 부팅합니다.

관련 문제