在书上看到的,例如,寄存器esi中存放着LoadLibraryA的入口地址0x00280000。
后面要调用LoadLibraryA,用如下这条指令。
call dword ptr ds:(esi) //这里本应用中括号的,但是打不出来,只好用小括号代替
我有如下问题。
1.这个0x280000我知道是个相对虚拟地址,可是为什么会是用ds:(edi)来调用?这是说这个是相对于数据段的相对地址吗?为什么不是cs:(edi)或者ss:(edi) ?
2.我这里改为call edi 可不可以?
3.这个相对地址,是相对于ds,即是距离ds段起始地址0x280000?还是距离程序加载的基址image base