[過去ログ] 逆コンパイラCodeReverseを作る (376レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
297: 片山博文MZ ◆T6xkBnTXz7B0 2015/05/06(水)22:49 ID:ROM3ZfOK(1/4) AAS
コンパイラーなら型情報と構文に基づいてレジスター割り付けを行って、アセンブリを出力する。
逆コンパイラーはアセンブリから、オペランドと仮想アドレスに仮想的な値と
型を割り付け、それらを定数・変数・実引数・仮引数に抽象化し、式と構文を構築し、ソースを出力する。
298: 片山博文MZ ◆T6xkBnTXz7B0 2015/05/06(水)23:19 ID:ROM3ZfOK(2/4) AAS
callの引数は関数アドレスであるから、それがAPI関数であれば、実引数や戻り値に型情報を付加できる。
代入においては同一の値になるオペランドが現れる。このとき、型も同一になる可能性が高い。
このようにオペランドや仮想アドレスやレジスターに型情報を再帰的に付加していく。
299: 片山博文MZ ◆T6xkBnTXz7B0 2015/05/06(水)23:32 ID:ROM3ZfOK(3/4) AAS
仮想アドレス空間の状態は、プログラムの進行に従って遷移していく。
状態が変わる様子を再現するには、仮想マシンを作って動かしてみるのが、一番合理的だ。
300: 片山博文MZ ◆T6xkBnTXz7B0 2015/05/06(水)23:42 ID:ROM3ZfOK(4/4) AAS
仮想マシンを動かすなら、アセンブリか中間言語のどちらのレイヤーで動かすべきか?
中間言語で動かすならば、アセンブリの情報をほとんどすべて中間言語に移行しなければならない。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s