web-dev-qa-db-ja.com

qemuとgdbを使用してLinuxカーネルをデバッグするためにkASLRをオフにする

Qemuとgdbを使用してLinuxカーネルをデバッグしようとしています。問題は、gdbがブレークポイントで停止しないことです。 kASLRがgdbを混乱させるので、私はそれについて検索し、kASLRをオフにすることが役立つかもしれないことを発見しました。

-そのカーネルをゲストにインストールします。

+-そのカーネルをゲストにインストールし、カーネルコマンドラインに「nokaslr」を追加してKASLRをオフにします。

コマンドラインにnokaslrを追加することの意味と、その方法がわかりません。何か案が?

1
Winston

カーネルブートパラメータ ブートごとに一時的に設定することも、常に何らかの構成ファイルを介して設定することもできます。これがどのように行われるかは、Ubuntuの現在のバージョンでは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

その後、再起動します。 grubメニューで、パラメーターが期待どおりに表示されることを確認します。

2
thrig

qemu-system-x86_64 -append nokaslr

nokasrl Linuxコマンドラインパラメーターは、KASRLを無効にします。

これは、KASLRがデフォルトでオンになっていたv4.12以降に必要でした。

これが 高度に自動化されたBuildrootの例 それを使用しています。