Desativando o kASLR para depurar o kernel do linux usando qemu e gdb

1

Estou tentando depurar o kernel do Linux usando qemu e gdb. O problema é que o gdb não irá parar no ponto de interrupção. Eu pesquisei sobre isso e descobri que desligar o kASLR pode ajudar, porque o kASLR confunde o gdb.

-- Install that kernel on the guest.

+- Install that kernel on the guest, turn off KASLR by adding "nokaslr" to the kernel command line .

agora eu não sei o que significa adicionar nokaslr à linha de comando e a maneira de fazer isso. Alguma idéia?

    
por Winston 13.10.2017 / 16:15

2 respostas

2

Os parâmetros de inicialização do kernel podem ser definidos temporariamente por inicialização ou sempre via algum arquivo de configuração; como isso é feito depende do bootloader que, para as versões atuais do Ubuntu, é o grub2;

$ grep GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
$ sudo perl -i -pe 'm/quiet/ and s//quiet nokaslr/' /etc/default/grub
$ grep quiet /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet nokaslr"
$ sudo update-grub

e, em seguida, reinicie; confirme no menu grub que os parâmetros aparecem conforme o esperado.

    
por 13.10.2017 / 19:29
1

qemu-system-x86_64 -append nokaslr

O parâmetro de linha de comando nokasrl Linux desabilita o KASRL.

Isso foi necessário desde a v4.12, quando o KASLR foi ativado por padrão.

Aqui está um exemplo altamente automatizado do Buildroot que o utiliza.

    
por 01.02.2018 / 21:23