我需要幫助瞭解此ROP小工具(如下所示)如何按部就班地工作。 我很困惑,爲什麼在這裏需要mov和pop指令。 p = ""
p += pack('<I', 0x08139e7a) # pop edx ; ret
p += pack('<I', 0x081e0060) # @ .data
p += pack('<I', 0x080f3246) # pop eax ; ret
p += '/b
我有這塊代碼,顯然包含緩衝區溢出,因爲我可以輸入超過4個值到數組a中。我想使用緩衝區溢出來調用一個函數。我知道這個函數的地址。我知道我需要覆蓋函數返回地址,但我不知道如何實際執行此操作?另外,如果我設置n = 5並將5個值寫入數組a,程序不會崩潰,即使只有內存分配了4個值。爲什麼會這樣,我能做些什麼來使程序崩潰?我使用的是舊版本的Ubuntu,它不檢查緩衝區溢出。 int a[4];
for (