たのしいバイナリの歩き方
2013年8月22日紙版発売
2013年8月22日電子版発売
愛甲健二 著
A5判/320ページ
定価3,058円(本体2,780円+税10%)
ISBN 978-4-7741-5918-8
ただいま弊社在庫はございません。
書籍の概要
この本の概要
「シューティングゲームをチートから守るには?」
「リバースエンジニアリングされないためには?」
「脆弱性を見つけ,権限を奪取するには?」
普通のプログラミングだけでは意識しない低レイヤーの世界は,コンピュータを自在に操れる楽しさでいっぱい。アセンブラの読み方から最新の応用事例まで,技術と考え方が実例を通じてわかります。
こんな方におすすめ
- コンピュータの仕組み/低レイヤーに興味がある方
- セキュリティに興味のある方
著者の一言
はじめに
だれもがコンピュータを使う時代になり,利便性も格段に上がりました。しかしその分,システムは複雑になり,技術者が学ぶべきことは多くなり,同じコンピュータ技術であってもまったく知らないブラックボックスが増えました。
- OSはなにをしているのか?
- CPUやメモリはなにをしているのか?
- なぜソフトウェアは動くのか?
- なぜセキュリティホールは作られるのか?
- なぜ任意のコードが実行されてしまうのか?
そんな疑問に答えるための味方になってくれるのが,アセンブラなどバイナリレベルの知識です。
時代はWebアプリケーション全盛ですが,バイナリレベルの知識はいまなお活躍の場を失っていません。たとえば
「C/C++で開発中のプログラムに原因不明のバグがあり,ソースコードを眺めてみても,原因がどうしてもわからない」
という場合,アセンブラでコードを書くことはなくとも,読むことができれば,デバッガを立ち上げ,即座にバグの発生個所を特定し,対処できる場合があります。
また,他人が作ったライブラリにバグがあり,ソースコードが手元にない場合でも,内部を解析し,問題個所を回避したり,あるいはライブラリ作成者に詳細を伝えられます。
さらに例を挙げるならば,アセンブラを学ぶことでCPUに近い部分を理解できるため,カーネルやドライバといったブラックボックスになりがちな低レイヤーの問題にも対応できますし,それらを開発する場合にも役立ちます。
ただ正直なところを言うと,「役に立つ/立たない」「人気がある/ない」といったことは,どうでもいい話です。なぜなら私の経験上,「需要がありそう」「役に立ちそう」などと感じて学び始めたことを,実際に習得できたためしがないからです(笑)。私があまり優秀ではなかったからかもしれませんが,学生時代に「勉強しなさい」と言われて,素直に勉強した人がどれだけいるでしょうか? 統計をとったわけではありませんが,実感として全国で1%未満でしょう。
では,ものごとを習得するには,いったい何が必要なのでしょう?
私は中学生の頃にプログラミングを学び始めました。将来プログラマになろうとも,技術でお金を稼ごうとも思っていませんでしたが,当時の私はコンピュータに夢中になり,毎日夜ふかしし,次第に学校の成績も落ち,両親を心配させるほどプログラミングにのめり込みました。
なぜ,あのとき,あれほどまでにコンピュータにハマったのか?
それは「プログラミングがおもしろかったから」。自分の書いたコードが書いたとおりに動くことが,思ったとおりに動かないことが,その理由を探すことが,ただただ楽しかったからだと思います。
私はそういった「楽しい」「もっと知りたい」と思えるような技術書を目指し,本書を執筆しました。そして,無数にあるプログラミング言語の中で,アセンブラが一番「楽しい」を持っている言語だとあらためて思いました。
あなたが「低レイヤーの話っておもしろそうだな」とふと思ってこの本を手に取ったならば,その予想以上に読む価値のある1冊になっている自負しています。
本書を通して,バイナリレベルの世界の楽しさを少しでも感じていただければ幸いです。
補足情報
本書のサンプルファイルは以下からダウンロードできます。
https://github.com/kenjiaiko/binarybookこの本に関連する書籍
-
RISC-VとChiselで学ぶ はじめてのCPU自作 ――オープンソース命令セットによるカスタムCPU実装への第一歩
本書では,UCバークレーで開発されたオープンソースの命令セット(ISA)「RISC-V」を用いて,CPUの作り方を解説します。コンピュータアーキテクチャ,ハードウェアに関...
-
動かしてわかる CPUの作り方10講
野村達雄氏(『ポケモンGO』開発者)推薦!! 「簡潔明瞭な文章でソフトウェアからトランジスタまで漏れなく解説。 CPUをゼロから設計してFPGAで実装する, 僕の人生を...
-
ハードウェアハッカー ~新しいモノをつくる破壊と創造の冒険
エドワード・スノーデン,伊藤穰一(MITメディアラボ所長)ほかテクノロジー業界の著名人の推薦続々! たった12ドルで携帯電話を作るには? 著作権に違反せずにプロ...
-
あなたの知らない超絶技巧プログラミングの世界
「役に立たないプログラムには価値がない?」 「プログラミングは仕事以外でやりたくない?」 本書には,アスキーアート化,自己生成,縛りのあるプログラミングなど...
-
検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏
まいにち使っている検索エンジンがどうやって動いているか,知っていますか? 本書では,小さな検索エンジンを作りながら,ソースコードレベルで検索エンジンのしくみ...
-
アセンブリ言語スタートブック
本書は,情報処理技術者試験で使われている「CASL II」を題材に,アセンブリ言語のプログラミングの初歩を「豊富なイラスト」とサンプルプログラムを用いて初心者にもわ...
-
コンピュータのしくみを理解するための10章
コンピュータはどのように動くのか,ゼロレベルから10ステップで学習するコンパクトな一冊。ディジタル回路,機械命令…とハードウェア面からスタートし,順に知識を積み...