バイナリ解析とかその界隈での、サンプルコードを見ていて、みょうな読みづらさを感じる時がある。 二つ以上のモジュールの関連が、絡み合っていてよく分からなかったり(APIのHOOKで、Hookを仕掛けたりHookとして動作するコードだったりそれが読み込むDLLだったりが、記事によっては一つのモジュールで色々兼用したりしてて分かりづらい)。 アセンブラのコードの場合は、アセンブラの提供するマクロをあまり使わずに冗長だったりマジックナンバーてんこ盛りのコードになっていたり(ESPやEBPからのオフセットとか)。 最初はスキルの方向性が違うのかなと思ったのだけれど、改めて思うに、広く一般に知られたくないコードだから敢えて読みづらいコードにしているのかも知れない。 Webアプリ界隈の考え方だと、Blogであったり記事であったり公の場所で公開するソースコードというのは「理解して貰う」ためのものなので、マクロや適切なコメントを活用し、後々ソースを追いづらくしそうなマジックナンバーの多用を避けたりする。総じて、一般に読みやすい・理解しやすいコードになる。 バイナリ解析やちょっと危ないダークサイド系では、そもそも理解して貰う必要が無い。コンセプトを示せれば良い。わざわざ読みやすくて理解しやすいソースを書いて、濫用・悪用されるのを避けたい・・・という意図が働いているのかも知れない。 ・・・まぁ、これも自分が深読みしているだけで、もっと単純に、コンセプト実証を示せたからそれでいいや、という程度にしているだけかも知れないけど。