天天看點

在WinDBG中檢視調用棧的指令

指令

==========

k

k指令顯示的是一定數量的棧幀, 其中幀的數量是由.kframes指令來控制的, 預設值是256。

在WinDBG中檢視調用棧的指令

kp 5

顯示調用棧中前5個函數以及他們的參數.

kb 5

顯示調用棧中前五個函數以及他們的前三個參數.

kf 5

顯示在調用棧中五個函數所使用的棧的大小.

每個棧幀所占的空間使用量的計算方法是: 将目前函數的棧基指針與在函數中調用的任何一個函數棧基指針相減.

舉例:

在WinDBG中檢視調用棧的指令

手動構造棧的實踐- 如何手工構造調用棧

============

首先用幾幅圖說明一下棧的特點, 幫助大家了解.

1. 棧向低位址增長.

在WinDBG中檢視調用棧的指令

2. 向棧中壓入資料, 棧中的情況如圖.

在WinDBG中檢視調用棧的指令

3. 有函數調用的棧中的情況.

在WinDBG中檢視調用棧的指令

注意, 手工構造棧的時候, 我們需要利用的是上面圖中顯示的一個模式:

在記憶體中的一系列的值是可以被識别出來的, 這些值表示目前站中的某個位址, 并且在這些值之後是一個可執行的位址.
在WinDBG中檢視調用棧的指令

參考資料:

<<AWD>>

繼續閱讀