我在看的是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)
返回的地址是模塊本身的基地址?
我的下一個問題是如何識別模塊是否在當前程序的內存空間中?
我最後一個查詢總結了這些,基地址和實際地址之間的區別是什麼?
GetModuleHandle是查看模塊是否加載到內存中的API。我不使用Python也不使用免疫調試器,但您應該能夠調用該API來檢查。在調試方面沒有像真實地址那樣的東西(除非你正在談論物理地址?)。基地址是模塊的EP,是的。 – Paul 2014-09-01 13:58:58