home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2009/11/29/西田亙氏の「GNU Development Tools」読み終えた (v1)

日記/2009/11/29/西田亙氏の「GNU Development Tools」読み終えた (v1)

日記 / 2009 / 11 / 29 / 西田亙氏の「GNU Development Tools」読み終えた (v1)
id: 505 所有者: msakamoto-sf    作成日: 2009-11-29 20:32:58
カテゴリ: Assembler C言語 Linux hacks プログラミング 読書 

2006年時点で購入済だったのだけれど、ちゃんと読んでいなかった。大学時代にInterface誌などでおおよそは把握していたから・・・という慢心もあった。

ちゃんと読み直してみたら、3年も経過してgccやbinutilsのバージョンも上がり、多少躓くところもあったものの全体として・・・「あれ、もう読み終わり?」という感じだった。Interface誌やUNIX USERで感銘を受けたLinuxカーネルのMakefileの解析やブートコードの解析、さらにシステムコールを直接呼ぶことでlibcの呪縛から解放された80バイトの"Hello, World"の作成などまでは立ち入っていない為、物足りない・・・。

実はInterface誌(2002年7月号)やEmbedded UNIX誌は引っ越す前に古本で処分してしまって、さらにUNIX USERでの"GCCプログラミング工房"の連載のコピーも廃棄してしまい・・・ああ~~~なんであの貴重な雑誌資料を廃棄するのかな~~~!!!なんて馬鹿な自分・・・!!

Embedded UNIXについては先日、ちょうど西田氏の連載が載っている分だけ(Vol1, Vol2, Vol6)がヤフオクに出ていたので速攻で落札。
問題はInterface誌2002年7月号の特集記事なのだけれど、取り戻したEmbedded UNIX誌や「BINARY HACKS」、「ふつうのコンパイラを作ろう」、「Linuxのブートプロセスを見る」(ASCII)などで上手く補完できるかもしれない。最悪、まだAmazonでInterface誌の2002年分のCD-ROM縮刷版が存在するのでこれを入手するほか無い・・・。でも縮刷版なだけあり、お値段もそれなり・・・。

とりあえずELFのノウハウやlibcからの解放はBINARY HACKSの方でも載っているし、Embedded UNIX Vol.6 にも載っている。BusyBoxについてはEmbedded UNIX Vol.1に、kernelのビルド部分の解説は同Vol.2のそれぞれ「Linuxシステム縮小化計画」に載っている。ルートファイルシステムの構築などその辺りは同Vol.6に。

さらに先日手に入れた組み込みLinux系の書籍ではソースツリーの構成やMakefileの中身、bzImageやブートローダからInitial RAMDISKの話まで網羅されている。それに「Linuxのブートプロセスを見る」(ASCII)を併せれば一通り網羅できるはずだ。

ld.soあたりが気になるけど、そこは「ふつうのコンパイラを作る」を読み込む必要があるかも知れない。あとはBSD系のソースを調べるとか、それこそld.soのソースを追うとかしないとだけど・・・これはかなりエネルギーが入りそう。

最終目標はPHPに対してコマンドライン引数からシェルコードをexploitする事なんだけど、そのためにはシェルコードのexploitの基礎を勉強しておきたい。そのためにはある程度、「任意のバージョンのLinuxカーネルとglibcを自由に組み合わせて環境構築できる」ようになっておきたいので、スゴイ回り道をする事になる。
けどまぁ、これが出来るようになれば多分折り返し地点は過ぎていると思うので、マイペースで頑張ろう・・・。


プレーンテキスト形式でダウンロード
表示中のバージョン : 1
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2010-07-11 11:02:12
md5:12985b54a0098c4f0b3f4577fc3341b6
sha1:e337a82d84a0a25dc45ff481ea0c5fb7df628f51
コメント
コメントを投稿するにはログインして下さい。