Binary Hacks ―ハッカー秘伝のテクニック100選 |
|
売れ筋ランク > Binary Hacks ―ハッカー秘伝のテクニック100選
バイナリをgcc、nm, straceなどいったツールでハックしまくるテクニックの紹介。ほとんどがLINUX上のコアなプログラミングなので、組み込みソフト屋の私には直接は役に立たないが、間接的にはとても参考になる。私自身、スタックからバックトレースを作ったり、プラグインを作ったり、コンパイラやリンカを駆使してエレガントにブート・ロードする組み込みソフトを作ったりして、バイナリとはかなり仲良しなのであるが、アプリケーションプログラマでこういったことをしている人ががいることにびっくり。なかなかやるなーという感想。アプリケーションプログラマを馬鹿にしていたが、その考えを改めねば。 家を建てたいとしよう。本当の本当に必要な最小限度の道具立てを考えると、電動工具は不要だ。でも、実際には電動工具は効率的に家を建てるためには不可欠。 この本に載っている情報の多くは、ソフトウェア開発者にとっての「電動工具」。 たとえば"objdump -d で逆アセンブルの結果が出てくる"なんてのは、gdbを使えば不要な知識かもしれない。elfファイルの構造は知らなくても、どうにかなる。共有ライブラリの動作原理を知らなくたって、ほとんどのプログラマは困らない。 でも、objdump を知っていると、Linux/scripts/checkstack.plのようなプログラムが書ける。elfの構造を知っていると、デバッグ情報は実はメモリにロードされないから、ディスクに余裕があるなら -g オプションはつけっぱなしにしよう、という気になる。共有ライブラリのロード手順を知っていると、後付で動的ライブラリを切り替えて文字コード対応する、なんてプログラムの作り方が出来ることに気づく。 大工さんがよい道具に興味を示すように、優秀なプログラマはよい道具に関心を示す。そんなプログラマになりたいなら、入門書としてこの本はお勧め。 余裕のある人が読む本かもしれませんが、読めば役立つ本です。ある程度自分で書ける人向きで、初心者向きではないとは思いますが。でも、ファイルの種類チェックやダンプの仕方、0とNULLの違い、シグナルの話、プログラムの細かい動きかたなど、結構、言語やシステムをきちんと理解したいなら知っていて当たり前みたいな、基礎的なことが書いてあるとも言えます。 この本は、結構面白いことを、書いてある。と思っていた。 しかし、よくハッキングをしている人を見ると、この本に書いてある情報は常識レベルという気がしてきた。その意味では、この本に書いてあるレベルのツールは、使えないと、Linuxなどの開発者といえないと思われる。 バイナリアンの応用編が出てくることを切に望む。(売れないかな?) Binary Hacks ―ハッカー秘伝のテクニック100選を楽天で検索 |