未分類

Fullprofをmac osx el capitan 10.11にインストール

el capitanは、保護機能があり/usrへの書き込みがデフォルトではできない。保護機能を切ってインストール作業を行う。

公式で、FullProf_Suite Mac February – 2015および、OpenMotif 2.2.3 for Macをダウンロード。
https://www.ill.eu/sites/fullprof/php/downloads.html

Fullprof本体は通常通り、/Applicationsにコピーすることでインストール。
openmotif-2.2.3-intel-MacOS.tgzは、ターミナルで次のように入力して解凍し、移動しておく。

$ cd ~/Downloads
$ tar zxvf openmotif-2.2.3-intel-MacOS.tgz
$ mkdir -p /Applications/Darwin
$ mv ./openmotif-2.2.3-universal /Applications/Darwin

Macをシャットダウンし、command + Rを押しながら起動。キーは押しっぱなしにし、リンゴマークがでたら離す。3 minほど待つとリカバリモードが起動する。言語を選択し、メニューバーから、「ユーティリティー」->「ターミナル」を選択。ターミナルが出現する。ターミナルで次のように打って保護機能を解除する。そして再起動をする。

# csrutil disable
# reboot

通常のOSXが起動したら、ターミナルで次のように打つ。パスワードを聞かれたら入力。

sudo ln -s /Applications/Darwin/openmotif-2.2.3-universal /usr/OpenMotif

Fullprofをアプリケーションから起動できるか確認する。

保護機能を有効に戻す。先程と同様にMacをシャットダウンし、リカバリモードを起動する。ターミナルから、次のように入力し、保護機能を有効にするとともに、再起動する。

# csrutil enable
# reboot

mac osx el capitanで uidを変更する

user:fooのuid を501から500に変更する

sshでrootでログインするとか、他のユーザでログインしてsudo suして次を実行

dscl . -change /Users/foo UniqueID 501 500
dscl . -read /Users/foo uid
dscl . -read /Users/foo UniqueID

ファイルのuidも変更する。

find -x / -user 501 -exec chown -h foo {} \;

xargsを使うと、バッファspaceが足りないと言われた。

bof対策メモ

  • *** stack smashing detected ***

となる時、コンパイル時オプションでカナリアコードをなしにできる。NXビットも無視できる。
gcc bof.c -fno-stack-protector -z execstack

  • ASLRを無効にする

sudo sysctl -w kernel.randomize_va_space=0
gdb上ではデフォルトで無効

  • gdbでdisasの時にintel表記/AT&T表記

set disassembly-flavor intel
set disassembly-flavor att