堕落したWindowsプログラマのレベル -10
- XPのタスクマネージャーで表示される「メモリ使用量」の意味を理解している。そのうえで、これを減らすためだけの技巧を凝らす。メモリ使用量が少なく見えれば、ユーザーの満足度は上がるさ!
- DLLインジェクション+APIフックが便利だ。フックする際は、IATフックが有効でない場面、インラインフックが危険な場面を理解しつつも、めんどくさいと思い気にしなくなった(クラッシュするのは僕のプログラムじゃないしね)。
- Undocumentedな構造体やAPIも便利だと思えば使う。興味深い機能は逆アセンブルして実現しているAPIとその使い方を特定することがある。
- ユーザーモードでは力不足と感じて、カーネルモードコードの開発も選択肢に含める。コードの量も少なくてすむし、スマートな方法だ。青画面になるかもしれないが、Readmeに一言書けばいいだろうと考える。
- ユーザーモードプログラミングは面倒が多いのでカーネル空間でやった方が早い、という目的・状況がしばしばある。
- GDI32の関数のほとんどを知らないか、忘れた。USER32はSetWindowsHookExをexportしていることだけ覚えている。それで特に困らない。
- こんな複雑なカーネルモードのAPIを使うくらいなら、システムの内部構造体を直接参照した方が楽だなあ、と迷う。
- Windowsカーネルの逆アセンブルを見ながら青画面の発生を回避するためのHackを重ねている。
- Windowsカーネルのなかで動く、自分の書いたコード以外のすべてのコードが邪魔で、Windowsうざい、とか思う。
- オープンソースなOSの素晴らしさに気づく。