最近、私はいくつかの PE 実行可能仕様を読んでいました。次に、小さな C プログラムをpush ebp, pop ebp
作成し、コンパイルしました。コンパイルが成功した後、実行可能ファイルで PE ファイルを開きPE_magic + PE_header_size + PE_OPTHDR_entrypoint
、PE マジックがファイル内で最初に出現した「PE」文字列の位置を調べました。その位置でアドレス 0x1000 を見つけましたが、ファイルの長さは 0x600 しかありません。それで、私は正しい位置にいますか、それともエントリポイント (ちなみに 0x200 にあります) のアドレスが正しく設定されていませんか?
ファイルの内容とコードの画像を含めています。
コード (プロジェクトのプロパティで、標準ライブラリの追加をオフにしました):
int main() {
int a = 0;
__asm {
push ebp
pop ebp
}
}