看板 CSIE_ASM 關於我們 聯絡資訊
※ 引述《braveforever (braveforever)》之銘言: : 當procedure執行到ret n 時, : 投影片上說會有兩個動作,先把 EIP=SS:ESP ---(1) 這裡因該打 EIP=SS:[ESP] 會比較好一點. 因為是取 ESP 所指向的記憶体內容 :        然後 ESP=ESP+4+n ---(2) : 但是在執行(1)之後,CPU下一個執行的指令該為EIP所指到的那一行, : 那麼(2)就不會被執行到?! (2) 還是會被執行到的,因為那是 CPU 自己幫你作掉的動作, 而且那個 n 是指 Byte 如果你今天是在 32 bits 的環境下, 那他就是 4 的部數,也就是看你在 CALL 指令的上面要還原多少。 你可以用 Ollydbg 去看看 Win32 API 的作法,__stdcall 的這種方式, 都是使用 ret n 的方法在清參數的 . -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.99.35