岩田聡の手動C逆コンパイル
岩田聡
https://www.4gamer.net/games/999/G999905/20151225009/
驚いたのは,なんと岩田さんは,
アセンブリ言語
で書かれた
ゲームボーイ
版のソースを見ながら,それを
C言語
に書き換えるというやり方で作っていたんですね。
手動逆コンパイル
に近いと思う
多分これができるようになるには
C言語から生成される機械語
の特徴を知る
C言語から生成した実行可能ファイルを
逆アセンブル
して、それを元のC言語と照らし合わせる
コンパイラの出力がどのようになっているかが理解できる
例
呼出規約
cdecl
実引数
、
ローカル変数
libc
の
共有オブジェクト
からの呼び出し
アセンブリ言語のソースと同じ動きをするC言語のソースを書く
ことを繰り返す
コンバート