Open9

x86エミュレーター自作勉強会 2021/06/27

hidexirhidexir

call命令は jmp + push ret命令は jmp + pop と似ている動作をしているが jmpはパイプラインフラッシュが行われている。 eipを直接書き換えることはできないため。 callやretが必要になる。

hidexirhidexir
int add (int a, int b){
 reutnr a + b;
}

引数はスタックに積まれて。関数内部でpopして扱われる。

hidexirhidexir

P110まで終了 次回 gdp-pedaをつかて。 eip esp ebpの動きを確認する。

hidexirhidexir

「push 汎用レジスタ」の機械語は0x50にレジスタ番号を足した数値になります。ebpレジスタの 番号が5ですから0x50+5=0x55となるのです。