為了在分析過程中為您提供幫助,IDA會跟蹤的程序不同部分之間 交叉引用(或 簡稱為 外部參照 )。 您可以檢查它們,導(dǎo)航它們,甚至添加自己的視圖以擴大分析范圍并幫助IDA或反編譯器。
交叉引用的類型
有兩類交叉引用:
代碼:交叉引用指示兩個代碼區(qū)域之間的關(guān)系:
跳轉(zhuǎn):交叉引用表示有條件或無條件地將執(zhí)行轉(zhuǎn)移到另一個位置。
調(diào)用:交叉引用表示隱式返回到調(diào)用指令后的地址的函數(shù)或過程調(diào)用。
流:交叉引用指示從當前指令到下一條指令的正常執(zhí)行流。 此外部參照類型很少在IDA中明確顯示,但分析引擎已廣泛使用它,并且插件/腳本編寫者需要意識到這一點。
數(shù)據(jù):交叉引用用于引用來自代碼或其他數(shù)據(jù)項的數(shù)據(jù):
讀取:交叉引用表示正在讀取該地址處的數(shù)據(jù)。
寫:交叉引用表示正在寫入該地址處的數(shù)據(jù)。
偏移量:交叉引用表示已獲取但未明確讀取或?qū)懭氲捻椖康牡刂贰?/span>
當在拆卸中使用某個結(jié)構(gòu)或?qū)⑵淝度氲搅硪粋€結(jié)構(gòu)中時,將添加 結(jié)構(gòu) 交叉引用。
交叉引用類型可以用單字母代碼表示。
檢查和瀏覽交叉引用
在圖形視圖中,代碼交叉引用顯示為代碼塊之間的邊(箭頭)。 您可以通過視覺上的箭頭或雙擊來導(dǎo)航。
在文本模式下,對當前地址的交叉引用將作為注釋打印在該行的末尾。 默認情況下,最多打印兩個參考。 如果還有更多,則顯示省略號(...)。 您可以在選項>常規(guī)…交叉引用選項卡中增加打印的交叉引用數(shù)量。
注釋中僅顯示明確的參考; 流交叉引用在文本模式下不顯示。 但是, 用虛線表示 沒有 流程交叉引用(代碼執(zhí)行流程的末尾)。 通常在無條件跳轉(zhuǎn)或返回之后可以看到它,但是在調(diào)用非返回函數(shù)之后也可以看到它。
要導(dǎo)航到交叉引用的來源,請雙擊或在注釋中的地址上按Enter。
捷徑
“X”這可能是最常見和最有用的快捷方式:按此快捷方式可查看 的 的交叉引用列表 光標處 標識符 。 從列表中選擇一個項目即可跳轉(zhuǎn)到該項目。 該快捷方式不僅適用于反匯編地址,而且適用于 堆棧變量 (函數(shù)中)以及 結(jié)構(gòu) 和 枚舉成員 。
“Ctri”–和“X” 的工作原理類似,但是 顯示 的交叉引用列表 不管光標在行中的什么位置,它都會 當前地址 。 例如,當您需要將當前函數(shù)的調(diào)用者列表放在其第一條指令上時,該列表很有用。
另一方面,顯示 中的交叉引用列表 當前地址 。 從單個位置到多個其他位置有多個交叉引用是一種罕見的情況,但是在其中有用的一種情況是 開關(guān) (表跳轉(zhuǎn)):在間接跳轉(zhuǎn)指令上使用此快捷方式可以使您快速查看并跳轉(zhuǎn)到任何一個開關(guān)案件。
如果您忘記了快捷方式,或者只是喜歡使用鼠標,則可以在“跳轉(zhuǎn)”菜單(有時在上下文菜單)中找到相應(yīng)的菜單項。
以上就是關(guān)于交叉引用的相關(guān)內(nèi)容了
京ICP備09015132號-996 | 違法和不良信息舉報電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室
北京哲想軟件集團旗下網(wǎng)站:哲想軟件 | 哲想動畫