我學習上的Windows XP環境 FASM而我讀了FASM的源代碼,我發現調用宏調用從裝配的Windows API,但沒有硬編碼地址
invoke MessageBox,0,[_strbuf],_msgcap,MB_ICONINFORMATION+MB_OK
和導入宏。
import user,\
MessageBox,'MessageBoxA',\
wsprintf,'wsprintfA'
但我無法找到MessageBoxA的任何硬編碼地址,也無法在彙編代碼中加載user32.dll。 只有標記字符串但不是地址的宏定義。
我的假設是這樣的
有是加載user32.dll中和=>回到這裏加載的DLL的起始地址代碼,讓我們調用返回地址位置的
有(如MessageBoxA = 0x00000000)
所以指令'call'可以調用MessageBoxA標籤(它將被轉換爲位置A + MessageBoxA偏移量)
是我的假設錯了嗎? 我不知道如何調用API。
感謝