59人中、53人の方が、「このレビューが参考になった」と投票しています。
大工さんにおける電動工具の紹介本, 2007-02-17
家を建てたいとしよう。本当の本当に必要な最小限度の道具立てを考えると、電動工具は不要だ。でも、実際には電動工具は効率的に家を建てるためには不可欠。
この本に載っている情報の多くは、ソフトウェア開発者にとっての「電動工具」。
たとえば"objdump -d で逆アセンブルの結果が出てくる"なんてのは、gdbを使えば不要な知識かもしれない。elfファイルの構造は知らなくても、どうにかなる。共有ライブラリの動作原理を知らなくたって、ほとんどのプログラマは困らない。
でも、objdump を知っていると、Linux/scripts/checkstack.plのようなプログラムが書ける。elfの構造を知っていると、デバッグ情報は実はメモリにロードされないから、ディスクに余裕があるなら -g オプションはつけっぱなしにしよう、という気になる。共有ライブラリのロード手順を知っていると、後付で動的ライブラリを切り替えて文字コード対応する、なんてプログラムの作り方が出来ることに気づく。
大工さんがよい道具に興味を示すように、優秀なプログラマはよい道具に関心を示す。そんなプログラマになりたいなら、入門書としてこの本はお勧め。
3人中、3人の方が、「このレビューが参考になった」と投票しています。
GNUプログラミングテクニック集, 2010-06-30
GNUプログラミングテクニック集と言った感じの本です。
バイナリフォーマットの説明に関しては期待したほど深く突っ込んでいません。
100ものテクニックを紹介することが中心なので全体的に駆け足の説明になっているような気がします。
テクニック集なので前提になる知識は自分で調べる必要があります。
少なくともGNUの使用経験と多少のアセンブラの知識が必要です。
GNUを利用したことがあればなるほどと思うことがあると思われます。
ただし、ハードウェアやOSに依存したテクニックが多く、移植性、保守性を無視したテクニックが多いことに注意しましょう。
実用的な本というよりは、バイナリを意識したテクニックを通じてコンピューターの勉強をする本なのかもしれません。
組込みソフトウェアの技術者は本書のような本を読んでおいても損はありません。
31人中、24人の方が、「このレビューが参考になった」と投票しています。
当然教科書ではない。でも、とても参考になります。, 2006-12-23
余裕のある人が読む本かもしれませんが、読めば役立つ本です。ある程度自分で書ける人向きで、初心者向きではないとは思いますが。でも、ファイルの種類チェックやダンプの仕方、0とNULLの違い、シグナルの話、プログラムの細かい動きかたなど、結構、言語やシステムをきちんと理解したいなら知っていて当たり前みたいな、基礎的なことが書いてあるとも言えます。
41人中、28人の方が、「このレビューが参考になった」と投票しています。
バイナリアンの基本, 2006-11-29
この本は、結構面白いことを、書いてある。と思っていた。
しかし、よくハッキングをしている人を見ると、この本に書いてある情報は常識レベルという気がしてきた。その意味では、この本に書いてあるレベルのツールは、使えないと、Linuxなどの開発者といえないと思われる。
バイナリアンの応用編が出てくることを切に望む。(売れないかな?)
0人中、0人の方が、「このレビューが参考になった」と投票しています。
組み込み系の開発者は必携です, 2010-04-28
以前からバイナリファイルには興味があったため、読んでみました。
Webページでは見つからないようなテクニック、ノウハウが満載です。
静的ライブラリと共有ライブラリの説明がとても分かりやすかったです。
例えば、標準の strcpy 関数を自分で実装できるが、リンク時になぜ
シンボルの二重定義でエラーとならないのかがずっと謎だったのだが、
この本でやっと分かりました。
このように、シンボル(関数)の二重定義が検出されない場合があるため、
思わぬバグの原因となる可能性があるので、開発時にこの辺は常に意識
しておく必要があります。
「bitmask する定数は符号なしにする」で説明されている話は、以前私が
遭遇したのと全く同じ現象でした。その時は理由が分からなかったが、
整数昇格と符号拡張が原因のようです。とても勉強になります。
「大きすぎるシフトに注意」、「0 と NULLの違いに気を付ける」もまさに
目から鱗で必見です。例えば、memset 関数の第2引数は int 型だが、
実務のソースでは、NULL ポインタを渡しているソースをよく見かけま
した。64bit環境に移植したらトラブルになると思われます。
私は以前組み込み系の開発に携わっていたので、その時にこの本を読んで
おけば良かったと思います(もっとも、その頃呼んでも理解できなかった
かも)。
組み込み系だけでなく、その他の分野の開発者も是非呼んでおきたい本です。
10人中、2人の方が、「このレビューが参考になった」と投票しています。
ハードコア?なソフトウエア, 2007-12-04
バイナリをgcc、nm, straceなどいったツールでハックしまくるテクニックの紹介。ほとんどがLINUX上のコアなプログラミングなので、組み込みソフト屋の私には直接は役に立たないが、間接的にはとても参考になる。私自身、スタックからバックトレースを作ったり、プラグインを作ったり、コンパイラやリンカを駆使してエレガントにブート・ロードする組み込みソフトを作ったりして、バイナリとはかなり仲良しなのであるが、アプリケーションプログラマでこういったことをしている人ががいることにびっくり。なかなかやるなーという感想。アプリケーションプログラマを馬鹿にしていたが、その考えを改めねば。
Revilist, developed by
yto and powered by