戻る

Windowsダンプの極意 (上級者向け) ★★★★★

バグの根源を追及しようとする強い意志を持った気合いの入った本
本書の著者は紹介文を読むとどうやらダンプ解析大好き人間のようである。 「ダンプ解析とは、ソフトウェアの問題を調査するてめの唯一の方法です。」 「(今発生しているエラーの原因は)ダンプを解析しない限り、永遠に断言することはできない。」 「おおー、スゲー!」って感じです。 私も以前貧弱な環境で開発していた時期があって、頼りはダンプ解析のみという時期がありました。 私はこんなに根性は入っていなかったので楽しめるほどではなかったのですが、 今から思えばこの環境で得た知識やテクニックがその後の開発に大いに役立った事は間違いないです。 今は開発環境に随分と恵まれた状況となったため、気合いを入れてダンプ解析する時間は減りました。 しかし、今でもデバイスドライバのデバッグなどにダンプ解析をすることもあります。 ただし、本当に疲れます。問題は、今後64ビット環境になるとダンプ解析の難易度が更に増すことです。 8ビットの時代は逆アッセンブルしなくても16進数の並びも理解できました。 16ビットになっても比較的簡単な並びなら逆アッセンブルしなくても理解できる個所もありました。 流石に32ビットになると、逆アッセンブル無しでは手も足も出ません。 そしてついに時代は64ビットとなります。 しかし64ビットとりあえず置いておいて、本書を頼りに32ビットのダンプ解析に慣れる事が必要でしょう。 備考として64ビット版のデバッグ本は、残念ながら現在のところ殆どありません。 "x64 Windows Debugging"が出版されていますが内容は希薄です。 私がデバッガでWindowsのx64版を覗いたところ上位32bitは殆どゼロまたはLowビットに1がが入っている状態なので、 今のところ64ビットはそれほど気にする必要はないと思います。 さて本書の内容ですが、ダンプ調査のテクニックにはすごく詳しいです。 本書を読めばダンプの取り方、またその解析方法は一応マスターできるでしょう。 ただし、実際の業務となると、本書だけの知識では間に合いません。その背後にあるWindows内部の理解がないと解析そものもが始まりません。 したがって本書と共に「Windows Internals」などでその知識を深める必要があります。 またx86の知識も必須になりますので"Binary Hacks","Debug Hacks"等でx86のコードに親しんでおく必要もあります。 兎に角この世界は職人芸に近い領域なので気合いを入れて取り組んで下さい。 そして、この分野に喜びを感じる様なら(私はまだまだだが)"Memory Dump Analysis"なども読むと楽しいでしょう。 これらの本を読んでニンマリできる様なら道を極めたと言えるでしょう。

<参考図書>

       

Windowsプログラミングの極意 歴史から学ぶ実践的Windowsプログラミング (中級者向け) ★★★

Windows開発チームの一員が書いた本
本書はWindows開発チームの一員が書いた開発現場の裏話本です。 内容はまとまったものではなく色々なエピソードの寄せ集めです。 中には長年の疑問が解消した情報からどうでも良い内容まで含まれます。 Windows設計者に要求されることとして、不特定多数に大量に販売されることに耐え得ること、 また下位互換を出来るだけ保つことがありますが、 それらを実現するための苦労を垣間見ることができます。 Windowsが設計されてから何年も経過したのでこの様な本が出てきたと思うのですが、 Windows95発売時に出版されていればベストセラー間違いなしだったと思いますが、 今となっては知っていても話のネタ程度にしかならない知識かもしれません。 何でも細部まで知っていなければ気が済まない人にお勧めです。

Microsoft Windows Internals  (中級者向け) ★★★★★

Windowsの内部を知るための貴重な一冊

     

<翻訳本>

 

最近、プログラムと言ったらJavaなどのWebプログラミングが盛んで、 その様な環境でプログラムしているのならOSの内部についてはそれほど興味がないかもしれません。 でも人によっては、Windowsの内部動作まで知らなければ、何となく気持ちが悪いと思われる方もいます。 その様な状況で調査に入るわけですが、そこで困ってしまいます。 現在、Windowsカーネルの本が殆どないのです。 WindowsNTや2Kが出荷された当初は、目新しさもあって良書が何冊か出版されたのですが、 今では全て入手困難となってしまいました。 そこで紹介したいのが本書です。 本書は、有り難いことに何度も改版を重ね最新のWindowsの情報を保ってくれています。 内部の説明も非常に分りやすく詳細まで立ち入っています。 洋書なので抵抗ある方もいるかもしれませんが、 良く出来た技術書なので、コンピューター用語さえ分っていればすんなり読みこなせると思います。 妙なカタカナ英語が羅列されている翻訳よりは読みやすいのではないでしょうか。 現在、Windows内部説明書で本書以上の本は望めませんので、この分野に興味のある方にはお勧めです。

アーキテクチャ徹底解説 マイクロソフト公式解説書  (中級者向け) ★★★★

良いプログラムを書く秘訣は、使用OSの細部を知ること
アーキテクチャ徹底解説 Microsoft Windows2000〈上〉
アーキテクチャ徹底解説 Microsoft Windows2000〈下〉
ディビット・A. ソロモン (著), マーク・E. ルシノビッチ (著)
多摩ソフトウェア (翻訳)
出版社: 日経BPソフトプレス
ISBN: 4891001917 ; 上 巻 (2001/03) ¥4,179 (税込)
ISBN: 4891002174 ; 下 巻 (2001/03) ¥4,179 (税込)

 
最近は、開発環境も進化してアプリケーションの基本部分なら、比較的簡単に作成することができるようになりました。MFCなどで、ウィザードを使用すれば、そのままコンパイルするだけで、簡単な画面が表示されるのは、本当に便利です。それにちょこちょこと部品を付ければ、簡単なアプリケーションを動作 させることは、容易な作業かと思います。これなら、初心者でも長年プログラムをしてきた経験者でも同じプログラムとなるでしょう。でも、世の中そうは行きません。プログラムは、ちょっと複雑な事をやらせると不可解な現象に直ぐに遭遇するからです。やはりベテランになると、安全なプログラムに徹して作業を進めますが、時には高度なテクニックも駆使しなければなりません。ましてや初心者ともなると、何も考えずに猪突猛進して行きます。やがて、不可解な現象に出くわすことになるのですが、そこで実力が試されます。大体、不可解な現象はOSと絡み合った箇所で発生します。事務処理的なモノであれば、根気良くデバッガで追えば糸口が見つかることが多いのですが、マルチスレッドなどでイベントが組み合わさったり、再現規則を見出せない現象であったりした場合、本当に途方に暮れてしまいます。特にデバッガで追えなくなった現象の場合、後は頼りになるのは金田一耕介やポワロの様な推理力となります。そこで推理の助けとなるのが、OSの基本動作の知識です。 OSはこう動作をするはずだから、この辺はこうなっていなければならないので、この辺に仕掛けをいれてみようという具合に手がかりを探ります。本書は、Windowsの基本動作を説明したものです。上下巻モノですので内容には不足はありません。この手の本は詳しければ詳しいほど良いので、私は本書を選びました。最後に、OSの基本動作はWindows(NTカーネル)でもUNIXでも、大差はありません。したがって、どちらかをマスターすれば他方にも応用が効きますので、頑張りがいがある分野です。

Copyright (C) 2012 Layer Co.,Ltd. All rights reserved.

戻る