Publishing技術評論社の電子書籍サイトログインカート本サイトではJavaScriptを使用しております。JavaScriptが無効な状態ではご利用いただけません。本書は,2013年8月22日に発売された書籍の電子版です。普通のプログラミングだけでは意識しない低レイヤーの世界は,コンピュータを自在に操れる楽しさでいっぱい。アセンブラの読み方から最新の応用事例まで,技術と考え方が実例を通じてわかります。著者から一言はじめにだれもがコンピュータを使う時代になり,利便性も格段に上がりました。その分,システムは複雑になり,技術者が学ぶべきことは多くなり,同じコンピュータ技術であってもまったく知らないブラックボックスが増えました。OSはなにをしているのか?CPUやメモリはなにをしているのか?なぜソフトウェアは動くのか?なぜセキュリティホールは作られるのか?なぜ任意のコードが実行されてしまうのか?そんな疑問に答えるための味方になってくれるのが,アセンブラなどバイナリレベルの知識です。時代はWebアプリケーション全盛ですが,バイナリレベルの知識はいまなお活躍の場を失っていません。「C/C++で開発中のプログラムに原因不明のバグがあり,ソースコードを眺めてみても,原因がどうしてもわからない」という場合,アセンブラでコードを書くことはなくとも,読むことができれば,デバッガを立ち上げ,即座にバグの発生個所を特定し,対処できる場合があります。他人が作ったライブラリにバグがあり,ソースコードが手元にない場合でも,内部を解析し,問題個所を回避したり,あるいはライブラリ作成者に詳細を伝えられます。例を挙げるならば,アセンブラを学ぶことでCPUに近い部分を理解できるため,カーネルやドライバといったブラックボックスになりがちな低レイヤーの問題にも対応できますし,それらを開発する場合にも役立ちます。正直なところを言うと,「役に立つ/立たない」「人気がある/ない」といったことは,どうでもいい話です。私の経験上,「需要がありそう」「役に立ちそう」などと感じて学び始めたことを,実際に習得できたためしがないからです(笑)。統計をとったわけではありませんが,実感として全国で1%未満でしょう。ものごとを習得するには,いったい何が必要なのでしょう?私は中学生の頃にプログラミングを学び始めました。将来プログラマになろうとも,技術でお金を稼ごうとも思っていませんでしたが,当時の私はコンピュータに夢中になり,毎日夜ふかしし,次第に学校の成績も落ち,両親を心配させるほどプログラミングにのめり込みました。あのとき,あれほどまでにコンピュータにハマったのか?それは「プログラミングがおもしろかったから」。自分の書いたコードが書いたとおりに動くことが,思ったとおりに動かないことが,その理由を探すことが,ただただ楽しかったからだと思います。私はそういった「楽しい」「もっと知りたい」と思えるような技術書を目指し,本書を執筆しました。無数にあるプログラミング言語の中で,アセンブラが一番「楽しい」を持っている言語だとあらためて思いました。あなたが「低レイヤーの話っておもしろそうだな」とふと思ってこの本を手に取ったならば,その予想以上に読む価値のある1冊になっている自負しています。本書を通して,バイナリレベルの世界の楽しさを少しでも感じていただければ幸いです。本書のサンプルファイルは以下からダウンロードできます。https://github.com/kenjiaiko/binarybook愛甲健二(あいこうけんじ)ネットエージェント株式会社で各種ソフトウェアのリバースエンジニアリング,マルウェア解析,ペネトレーションテストなどを担当。2008年7月に取締役に就任。株式会社FFRI)にてソフトウェア解析を中心としたコンピュータセキュリティ技術のリサーチ,ソフトウェア開発を行う。2011(台湾)などのカンファレンスにて研究成果を発表。セキュリティキャンプ)にてソフトウェアセキュリティクラスの講師を務める。参考文献サポート現在サポート情報はありません。