天天看點

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

含義

local表示局部變量,arg代表參數,含義如下

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

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

請看這張圖:

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

在調用函數之前,先将兩個參數壓入堆棧,再執行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的格式顯示。

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