2.IDA-数据显示窗口(反汇编窗口、函数窗口、十六进制窗口)
生活随笔
收集整理的這篇文章主要介紹了
2.IDA-数据显示窗口(反汇编窗口、函数窗口、十六进制窗口)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當IDA加載后,3個立即可見的窗口分別為IDA-View窗口、函數窗口和消息輸出窗口,所有窗口都可通過View?Open Subviews菜單打開
反匯編窗口
反匯編窗口也叫IDA-View窗口,它是操作和分析二進制文件的主要工具0.在反匯編窗口中,ESC鍵的作用與Web瀏覽器的“后退”按鈕類似,遺憾的是,在打開的其他窗口中,ESC鍵用于關閉窗口
IDA使用術語流來表示某個指令如何繼續執行。正常流(也叫做普通流)表示指令默認連續執行。跳轉流表示當前的指令跳轉到(或可能跳轉到)某個非連續性位置。調用流表示當前指令會調用一個子例程。
圖形視圖
圖形視圖會讓人聯想到程序流程圖,因為它將一個函數分解成許多基本塊,以生動顯示該函數由一個塊到另一個塊的控制流程。1.IDA使用不同的彩色箭頭區分函數塊之間各種類型的流。 根據測試條件, 在條件跳轉位置終止的基本塊可能會生成兩種流: Yes邊的箭頭(是的,執行分支)默認為綠色,No邊的箭頭(不,不執行分支)默認為紅色。 只有一個后繼塊的基本塊會利用一個正常邊(默認為藍色)指向下一個即將執行的塊。
2.可以使用“CTRL+鼠標滑輪”來調整圖形的大小: 在圖形模式下,IDA一次顯示一個函數,鍵盤縮放控制需要使用“CTRL+加號鍵”來放大,或使用“CTRL+減號鍵”來縮小,大型或復雜的函數可能會導致圖形視圖變得極其雜亂,但圖形概況窗口會始終顯示完整的塊狀結構,并用一個虛線框指出你當前所在的圖形區域。你可用鼠標在概況窗口中拖動該虛線框,迅速調整到任何想到的位置。
3.平移操作: 除了使用“圖形概況”窗口迅速定位圖形外,你還可以通過單擊和拖動圖形窗口的背景來定位圖形,注意是背景,不要點到自身上了
4.重新調整塊位置: 通過單擊指定塊的標題欄并將其拖動到一個新位置,用戶可以移動圖形中的每一個塊的位置
5.調整連接線: 在按下SHIFT鍵的同時,在連接線的任何位置雙擊鼠標(注意是雙擊),即可在該位置添加一個新頂點,然后你就可以通過頂點改變連接線的轉向了
6.分組和折疊塊: 可以對塊分組,每個塊單獨分組,或者與其他塊一起分組(使用Ctrl選擇多塊),并可將分組后的塊折疊起來,以減少顯示的混亂程度。 折疊塊特別有用,可以幫助你追蹤已經分析過的塊。要折疊塊,可以右擊塊的標題欄,然后在出現的菜單上選擇“Group Nodes”。
7.打開行前綴: 要想顯示與每個反匯編行有關的其他信息,可以通過Options?General命令打開IDA常規選項,然后在Disassembly選項卡的可用的反匯編行部分選擇相應的選項
8.打開新的反匯編窗口: 如果你想要同時查看兩個不同函數的圖形,可以通過Views?Open Subviews?Disassembly命令打開另一個反匯編窗口。這樣打開的第一個反匯編窗口叫做IDA View-A。隨后的反匯編窗口叫做IDA View-B、IDAView-C,依次類推。每個反匯編窗口都獨立于其他窗口。你完全可以在一個窗口中查看一個圖形,在另一個窗口中查看文本列表,或者在3個不同的窗口中查看3個不同的圖形。
文本視圖
文本顯示窗口會呈現一個程序的完整反匯編代碼清單(而在圖形模式下一次只能顯示一個函數),用戶只有通過這個窗口才能查看一個二進制文件的數據部分。圖形顯示窗口中的所有信息均以某種形式存在于文本顯示窗口中1.虛擬地址: 以[區域名稱]:[虛擬地址]這種格式顯示,如.text:004011C1
2.左邊箭頭: 實線箭頭表示非條件跳轉,虛線箭頭則表示條件跳轉,如果一個跳轉(條件或非條件)回到以前的某個地址,這時會使用粗線(實線或虛線),通常表示程序中存在循環
Proximity browser
使用小鍵盤的(0 Ins)和"+"、“-”組合切換,以圖形模式顯示程序調用圖 以下代碼為例: [cpp]?view plaincopy又如選中_main函數:(注意全局變量也是一個node)
Proximity view的node僅顯示地址名(函數名或數據標簽),不顯示反匯編,盡管如此,把鼠標停留在一個node上將顯示一個提示窗口,上面列出了簡短的反匯編例表,如果 你想看完整的反匯編,那就只有切換模式了(num和+、或空格切換) Proximity view的node有三種:函數節(Function nodes)、數據節(data nodes?)、輔助節(auxiliar nodes)
函數窗口
用于列舉IDA在數據庫中識別的每一個函數對應列:(可通過help搜索functions window查找) [cpp]?view plaincopy
十六進制窗口
對應Views?Open Subviews?Hex dump,十六進制窗口可以配置為顯示各種格式,并可作為十六進制編輯器使用,和在反匯編窗口中一樣,可以同時打開幾個十六進制窗口。第一個叫做Hex View-A,第二個叫做Hex View-B,依次類推。0. 同步關聯: 默認情況下,第一個十六進制窗口會與第一個反匯編窗口同步,你也可以通過在任一窗口中右擊選擊Synchronize
同步后,在一個窗口中滾動鼠標,另一個窗口也會滾動到相同的位置(同一個虛擬地址),選中地址會高亮
1.編輯: 右擊菜單,選擇Edit菜單項(F2)可將十六進制窗口轉變為編輯器,這時可以自由編輯,完成編輯后,你必須提交或取消更改才能返回查看模式(F2保存,ESC撤消)
選中一塊數據,按CTRL+C可以復制,被選中的為灰色(不包括藍色部分),如下,選中的數據為34 FF FF FF B9 3(注意,最后是3,因為33只有一半被灰)
2.其他進制: 可以使用上圖中的Data Format菜單項選擇各種顯示格式,如1、2、4、8字節十六進制,帶簽名的十進制,或不帶簽名的十進制整數及各種浮點格式。你可以使用Columns菜單項更改顯示的列數,使用Text選項打開或關閉文本塊
3.??顯示 問號表示IDA無法識別給定的虛擬地址范圍內的值,如果程序中包含一個bss節,就會出現這種情況。通常,bss節并不占用文件的空間,但加載器會擴展這一節,以適應程序的靜態存儲要求。
總結
以上是生活随笔為你收集整理的2.IDA-数据显示窗口(反汇编窗口、函数窗口、十六进制窗口)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.IDA-基本操作(改变Image B
- 下一篇: 3.IDA-数据显示窗口(导出窗口、导入