Coder Social home page Coder Social logo

security's Introduction

このリポジトリは何ですか?

このリポジトリは、書籍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とは無関係です。

security's People

Contributors

windows-internals-guide avatar kiakiraki avatar tkmru avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.