今流行りのリバースエンジニアリングが出てるね。
動的解析と静的解析の違いについては、Ruby Hacking Guideの序章に詳しく書いてあったりする。 序章 導入
"レジスタとはCPUが内部に持つ記憶領域です。その記憶領域にはそれぞれEAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI、EIPといった名前がついています。" http://t.co/U6uAg6HEhu
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"ソフトウェア解析とは「何をやっているかを調べること」であり、プログラミングとは違います。すべての処理を完全に理解する必要はなく、だいたいの雰囲気がわかればいいのです。" http://t.co/kOiRUdA5o8
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"静的解析 ⇒ 対象となるプログラムを実行せずに解析する 動的解析 ⇒ 対象となるプログラムを実行しながら解析する" http://t.co/BjCqKffKcM
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"アセンブラは難しいイメージがあるかもしれませんが、現在は高機能なツールがそろっており、フローチャートを読むような感じで解析できます" http://t.co/IxMI6SZ0Zw
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"「ソースコードなどが一切ない状態から、そのソフトウェアの動作を把握する」 それがリバースエンジニアリングです。 今回は" http://t.co/bFWcGrRrMw
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"アセンブラコードをすべて読む必要はありません。これまたバイナリエディタのときと同じですが、ざっと眺めて、どういった処理が行われているかをなんとなくつかめれば十分です。" http://t.co/lXf5o4jPhL
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"動的解析と呼びます。こちらはおもにデバッガを使って処理を追うことが挙げられますが、ほかにも以下の行為は動的解析と呼べるでしょう。 ファイルやレジストリアクセスのログを取得する ネットワークのパケットをキャプチャする" http://t.co/WC07PS8fVb
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"静的解析と動的解析は「対象となるプログラムを実行するかしないかの違いである」と書きましたが、筆者の個人的な感覚としては、静的解析は「全体を広く眺めるイメージ」、動的解析は「局所的に集中して見つめるイメージ」です。" http://t.co/0vxSxXk8A9
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"一般的なプログラミング言語の予約語と比べても、アセンブラ命令の多さは尋常ではありません。1000近い命令を覚えなければロクにプログラムも組めないとなると、学ぼうとする人も減るでしょう。 しかし、じつを言うと、リバース... http://t.co/isfz1rI72H
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17
"です。「重要な個所は時間をかけてじっくりと理解する」「それ以外は全体の雰囲気からなんとなくこんな感じかなぁとざっくり把握する」ぐらいでかまいません。 そういう気持ちでバイナリを眺めていくと、なかなかおもしろいと思いま... http://t.co/i2Byth7Gb4
— 炭鉱ハッカー shigemk2 (@shigemk2) 2014, 8月 17