コンパイルされたものを逆コンパイルしてみる。
とりあえずPRCを解析しなきゃいけない。 Rubyで書きたいんだが、もうありそうな気がする。けど。
あったんだが面倒。PilotSyncではpilot-linkをビルドしなきゃいけない。 別にそんな必要はないんだけどなぁ。
pilot-linkはmingwでコンパイル失敗したので自分で書くことにする。 PRC/PDBの仕様はあるので見てみると簡単。はまったのはファイルヘッダ構造体の例のところでVersionが抜けているというのだけ。
さて、リソースを切り出すのは簡単に出来たのでそれをパース。
ドキュメントによるとClsDリソースにコンパイル後のクラスが入っているらしく、ヘッダとしてクラスの数、クラスのサイズが入ってるということだが。
ていうか無いんだけど。 まじで。
ソースを見るとなんかClsOに入ってるっぽい? ClsOリソースのサイズ÷2がクラスの数で、クラスの数だけ2バイトのクラスサイズが入ってるらしい。 試しにClsOから取ったサイズの合計とClsDリソースサイズの合計を出してみると一致した。 うーん。ドキュメントはあんまり参考にならないかも…。
昨日、VM製作にはどんな本を読めば良いのかとAmazonで探してみる。
あんまり良さそうな本は見つからなかった。
で、ApocalypticaのReflections RevisedとCJ CarellaのArmagedonとか買ってしまう。他に小説も2冊ほど買ったけど1万とかなっちゃった。 節約はどうした…。
しかも今日、またCD買ってしまうし。やばいかも。
とりあえずVM製作にはJavaVMの本なら情報が揃ってて良い感じ。あとはコンピュータアーキテクチャかな。
他にGCについても情報を集めたいんだけど、どんな本を読めば良いんだろう。論文とか探した方が良いのかなぁ。でもいきなり英語の論文とか敷居が高いぞ。