5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Cygwin使っている人いますか? その20

704 :名無しさん@お腹いっぱい。:2011/10/04(火) 18:04:54.61
fork()地獄について
常識みたいだけど俺は知らなかったので書いとく
Vista以降ではrebaseallだけでなくpeflagsallってのも実行して、さらに
再起動する必要もあるみたいね

Vista以降にはセキュリティのためにASLRという機能があって、
これがcygwinのfork()エミュレーションと相性が悪いようだ
cygwinではrebaseallでDLLをロードするベースアドレスを衝突しないように
割り振っているけれども
ASLRでは、重要なデータや関数の位置が固定だと攻撃されやすいので
OSがランダムにリロケートするようになっている

PEにはASLRを許可するフラグ(DynamicBase)があって、
cygwinではpeflags.exeというツールでそれを弄れるようになっている
現在のPEのフラグは、objdump -p foo.exeとかやれば見れる

rebaseall同様、インストールされているexeやdllなどのフラグを全て書き換えるために
peflagsallというシェルスクリプトも提供されているので、それを使えってことの
ようだ
ただしこれらは/etc/setup以下から対象となるリストを取ってくるので、
野良ビルドしたもの(perlやpythonの拡張を後で入れたりした場合もありがち)は
含まれない
そういう環境ではスクリプトを弄るなどして自分で対処しないといけないと思う

ぶっちゃけWin7 64bitとかだと、死にかけのcygwinを無理やり使っているような
感じがしないでもない……

204 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)