查找堆或堆塊或段我一直在調試軟件中的堆損壞。我可以將數據寫入堆並獲得對某些指針的控制權。我可以在不知道這一點的情況下實現我的代碼執行目標,但它讓我困惑了一下。從地址
問題是,我無法找到在哪個堆中寫入的塊,也沒有堆段。
我用:!heap -x [address] and !heap -x -v [address]
在Windbg下,他們沒有給我任何結果。 我知道一些堆可能會保留另一個堆段,當第一個堆棧中沒有未提交的空間可用時。但是,我已經拋棄了所有堆段,並且找不到與我正在查找的基地址類似的任何人。
對我來說這似乎有點奇怪,沒有具有這些塊的進程或應用程序特定的堆!
什麼使得你確定地址在堆上而不是在堆棧上(或者在多線程程序的情況下是堆棧之一)? – NPE
我剛剛檢查過那個頁面的訪問權限,它沒有被「守護」,堆棧應該被守護。另外,主線程(我感興趣的是)在堆塊中編輯內存。 – JohnnyCat
夠公平的,只是檢查... :) – NPE