2021/09/16(Rev)
ただの日記。
Ghidra実践ガイドを読みながら、リバースエンジニアリングの練習をした。関数や変数を参照している関数をたどりながら、最終的にmain()の中身がわかるようになる流れを覚えた。コメントをつけることに加えて、関数名を改めたり、構造体を定義して変数をまとめたりすることでソースがずいぶんとわかりやすくなった。
それにしても、昔かじる程度で学習したWindowsAPIの知識がここに来て役に立つとは。演習用の実行ファイルがWindows用の実行ファイルであるので、当然ディスアセンブル、デコンパイルして得られるソースもWindowsAPIの関数が多く含まれている。ドキュメントを参照すれば関数そのものを知らなくても引数の型を推測することはできるだろうが、やはりmainを見て動作の流れをトレースすることを考えればWindowsAPIの知識は必須であろう。