ollydbg中[local.1]、[local.2]、[arg.1]、[arg.2]的含義

iamblackcat發表於2020-09-26

含義

local表示區域性變數,arg代表引數,含義如下

local.2 == ebp - 8
local.1 == ebp - 4
arg.1 == ebp +8
arg.2 == ebp +12

為什麼arg.1是ebp+8而不是ebp+4?

請看這張圖:
堆疊示意圖

在呼叫函式之前,先將兩個引數壓入堆疊,在執行call,執行call時自動將返回地址壓入堆疊。進入子函式,開闢堆疊幀,首先兩行:

push ebp
mov ebp, esp

首先將原ebp壓入堆疊,即圖中的“原ebp”,此時的esp即指向剛壓入堆疊的“原ebp”處,再執行mov ebp, esp,則此時ebp即指向“原ebp”。

在ollydbg中修改local.1顯示方式

依次點選options->debugging options->analysis 1;選中如圖所示覆選框,即可顯示為local和arg的格式,取消勾選則以ebp的格式顯示。
除錯選項->分析1

相關文章