2014-09-01 75 views
0

我在看的是Immunity調試器的immlib庫中的不同功能。 我發起調試器中的蟒蛇外殼,跑以下命令:調試器中基地址與實際地址的區別

>>>imm.assemble("jmp esp") 
'\xff\xe4' 

>>>imm.search("\xff\xe4") 
[2090082029, 4411432, 2011716026, 2011814593, 2011483641, 2011550166, 2012419704, 1714392763, 1714402743, 2011113280, 2011241515, 2011395627, 2011399149, 2010689290, 2010819775, 2010819791, 2010819803, 2010845836, 2010849532, 2010849836, 2010851408, 2010855771, 2010855971, 2010856648, 2010856656, 2010856660, 2010857271, 2010857704, 2010857708, 2010857712, 2010857855, 2010857908, 2010857916, 2010858051, 2010859271, 2010860975, 2010863952, 2010864044, 2010864056, 2010864200, 2010864484, 2010864488, 2010864492, 2010866771, 2010866843, 2010867036, 2010882823, 2010883011, 2010890923, 2010893560, 2010897288, 2010897596, 2010903483, 2010903683, 2010904360, 2010904368, 2010904372, 2010905416, 2010905420, 2010905424, 2010905620, 2010905628, 2010906983, 2010908687, 2010911155, 2010911372, 2010911496, 2010911624, 2010911628, 2010911632, 2010911668, 2010911760, 2010911948, 2010912060, 2010912064, 2010912192, 2010912343, 2010912471, 2010914759, 2010938463, 2010938479, 2010938491] 

>>>imm.findModule(2090082029) 

('ntdll.dll', 2089811968) 

所以第一個命令組裝「JMP ESP」指令。 下一個命令在內存空間中搜索已組裝的指令。 然後最後一個命令(imm.findModule)查找包含彙編指令的所有模塊。

我的查詢是在第二個和第三個命令中返回的地址。

在第二個命令中返回的地址是否只屬於被調試進程的內存空間,或者調試器是否搜索整個可用內存空間來搜索組合指令?

如果我沒有錯,第三個命令('ntdll.dll', 2089811968)返回的地址是模塊本身的基地址?

我的下一個問題是如何識別模塊是否在當前程序的內存空間中?

我最後一個查詢總結了這些,基地址和實際地址之間的區別是什麼?

+0

GetModuleHandle是查看模塊是否加載到內存中的API。我不使用Python也不使用免疫調試器,但您應該能夠調用該API來檢查。在調試方面沒有像真實地址那樣的東西(除非你正在談論物理地址?)。基地址是模塊的EP,是的。 – Paul 2014-09-01 13:58:58

回答

1

在第二個命令中返回的地址是否只屬於被調試進程的內存空間,或者調試器是否搜索整個可用內存空間來搜索組合指令?

前者。運行在一個特定進程中的代碼只能直接「看到」同一進程中的內存。

如果我沒有錯,第三個命令('ntdll.dll',2089811968)返回的地址是模塊本身的基地址?

你是不是錯了:)

我的下一個查詢如何識別如果一個模塊是在當前程序的內存空間?

正如剛纔所討論的,這將始終是默認設置。要真正訪問另一個進程的內存空間中的內存,您必須使用ReadProcessMemory/WriteProcessMemory。

我最後的查詢總結了這些,基地址和實際地址之間的區別是什麼?

基地址通常是指模塊的加載地址 - 也就是模塊的PE頭位於內存中的位置。模塊的其餘部分的頭文件,代碼和數據(被映射到內存的部分)隨後跟隨模塊的指定頁面對齊。

這裏有點不清楚你的意思是'實際地址' - 內存中ntdll.dll頭部的實際地址與基地址相同。這是否回答了這個問題?

+0

感謝您的澄清。這確實解決了我的問題。通過實際的地址,我指的是物理地址。 – 2014-09-03 03:04:30