ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

たのしいバイナリの歩き方

たのしいバイナリの歩き方を読んだので感想を簡単に。

内容

第一章と第二章は、ゆるふわバイナリ入門です。ツールを使って、逆アセ、メモリダンプを行いながら、アセンブラの雰囲気をつかんでいきます。第三章のバッファオーバーフローから一気に難易度が上がっていき、その後は口をぽかんとあけたまま最後までたのしく読めます。バイナリ系の本は、LinuxGCCな環境が多く、WindowsAPIがらみのテクニックはとてもおもしろく読むことができました。

コードインジェクション

この本を読んでいて一番おもしろかった所です。

他のプロセスに任意のコードを実行させる方法を総称してコードインジェクションと呼びます。このURLの記事が有名として紹介されていました。
Three Ways to Inject Your Code into Another Process
http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces

この本では、上の3つ以外の方法としてDLLインジェクションを説明しています。一つのやり方として、CreateRemoteThreadを利用して実行中の他プロセス内にスレッドを生成し、そのスレッドでDLLをロードさせることでDLLインジェクションを成功させています。Windows APIも調べてみると面白い事いっぱいありそうです。

対象読者

バイナリが好きなら是非お勧めします。この本で読んだことが役に立つか?というと、そういう視点で読む本では無いです。技術評論社の書籍案内にある著者の一言が全てを表しているので、そこから引用して紹介の締めにします。

私はそういった「楽しい」「もっと知りたい」と思えるような技術書を目指し,本書を執筆しました。そして,無数にあるプログラミング言語の中で,アセンブラが一番「楽しい」を持っている言語だと あらためて思いました。

バイナリを楽しみたい人にお勧めです。