このリポジトリは何ですか?
このリポジトリは、書籍Windows Internals(日本語訳Inside Windows)をコードレベルで理解することを目指したプロジェクトです。 Windows Internalsに記載されている内容をコーディングを通じて証明することで、同書籍の圧倒的な理解が深まり、 それはWindows OSそのものへの理解にもつながります。
何故プロジェクトを発足させたか
Windows Internalsは、Windows OSを最も深く掘り下げた書籍です。 しかし、その掘り下げる内容が高度かつ難解であるが故に、ほとんど内容が理解されていない現状があります。 「Windows OSを理解するための敷居を下げることはできないか」、「Windowsの内部技術を分かりやすく伝えることはできないか」 そうした思いでこのプロジェクトを発足させました。
セキュリティの章を選んだ理由
Windows Internalsが解説する範囲は膨大であり、どの箇所から解析するかをまず決めなければなりませんでした。 上巻は全7章で構成されますが、このうちの第7章(セキュリティの章)が最も平易かつユーザーモード寄りなので、 第7章から解析しました。
使用技術
Windows InternalsはWindows OSを解き明かす書籍ですから、同書に記述される内容は当然ながらシステム寄りになります。 このため、必然的にソースコードはネイティブコードで記述することになり、C++とWin32 APIを使用した設計になります。 STLなどの便利な外部ライブラリは一切使用しません。 効率が悪いようにも思えますが、Windows SDKのサンプルがそうであるため、それに倣っています。
全てのコードを自動化に対応させる
いくらWindows Internalsを証明するコードを記述しても、 それらを手動でビルドして実行するのは、あまりにも手間がかかります。 このため、全てのプロジェクトは、ユーザー入力を伴わないコンソールアプリケーションとして設計され、 戻り値は成功を示す0か、失敗を示す-1を返します。 auto_buildは、全てのプロジェクトをビルドします。auto_execは全てのプロジェクトを実行します。
出典
[書名]
インサイドWindows 第7版 上 システムアーキテクチャ、プロセス、スレッド、メモリ管理、他 https://www.nikkeibp.co.jp/atclpubmkt/book/18/P53570/
[発行日]
2018年5月1日
[発行元出版社名]
日経BP社
[著者名・訳者名]
Pavel Yosifovich、Alex Ionescu、Mark E. Russinovich、David A. Solomon(著)、山内 和朗 (訳)
なお、このプロジェクトは運営者独自の見解を示すものであり、訳者および日経BPとは無関係です。