1,? 如何將IDA中地址與x64dbg 地址對應(yīng)起來?
? ? 在x64dbg中,點(diǎn)開 “內(nèi)存布局” 標(biāo)簽頁,查看exe的地址,比如:002A0000
? ? 在ida中,點(diǎn)擊菜單:Editor/Segments/Rebase program... 設(shè)置值為002A0000
? ? ? 這樣ida中的地址即為運(yùn)行的內(nèi)存地址
2, lea與mov區(qū)別
lea是“l(fā)oad effective address”的縮寫,簡單的說,lea指令可以用來將一個內(nèi)存地址直接賦給目的操作數(shù),例如:
lea eax,[ebx+8]就是將ebx+8這個值直接賦給eax,而不是把ebx+8處的內(nèi)存地址里的數(shù)據(jù)賦給eax。
而mov指令則恰恰相反,例如:
mov eax,[ebx+8]則是把內(nèi)存地址為ebx+8處的數(shù)據(jù)賦給eax。
lea eax,[eax+2*eax]的效果是eax = eax + eax * 2
mov edx [ebp+16]的效果是edx=*(dword*)(ebp+16)
3, 匯編偽指令db,dw,dd的問題
db定義字節(jié)類型變量,一個字節(jié)數(shù)據(jù)占1個字節(jié)單元,讀完一個,偏移量加1
dw定義字類型變量,一個字?jǐn)?shù)據(jù)占2個字節(jié)單元,讀完一個,偏移量加2
dd定義雙字類型變量,一個雙字?jǐn)?shù)據(jù)占4個字節(jié)單元,讀完一個,偏移量加4
dq定義4字類型變量,一個雙字?jǐn)?shù)據(jù)占8個字節(jié)單元,讀完一個,偏移量加8