1. 程式人生 > 其它 >4.1IDA基礎設定--《惡意程式碼分析實戰》

4.1IDA基礎設定--《惡意程式碼分析實戰》

1.載入一個可執行檔案

① 選項一:當載入一個檔案(如PE檔案),IDA像作業系統載入器一樣將檔案對映到記憶體中

② 選項三:Binary File將檔案作為一個原始的二進位制檔案進行反彙編,例如檔案帶有shellcode、其他資料、加密引數,甚至裡面帶有可執行檔案,如果檔案還是以正常形式載入到IDA中,這些東西是不會被載入到記憶體中的,因此應該將檔案作為二進位制檔案進行反彙編。

Manual load:選擇後可以指定這個檔案要載入的新的虛擬機器地址,並且還會詢問是否要逐個載入每一個節。
注:在預設情況下,IDA Pro的反彙編程式碼中不包含PE頭或者資源節,而這些地方經常被惡意程式碼用來隱藏惡意指令。

2.反彙編視窗

(1)設定
Options->General->選擇Line Prefixex(記憶體位置顯示)並設定Number of Opcode Bytes為6(顯示程式碼清單中每條指令的操作碼值)

3.載入庫以顯示標準符號常量

View->Open Subviews->Type Libraries 來檢視當前被載入的庫,一般mssdk和vc6win會被自動載入,我們也可以右鍵載入一些其他的庫。惡意程式碼經常需要使用本地Api,要獲取本地Api的符號常量,需要載入ntapi庫。


匯入exe檔案
  將對應版本cpp檔案拖入到IDA中,點選OK,
  等待後點擊空格,進入彙編,
  選擇View --》open SubView --》String --》雙擊相關字串 --》 進入定義,
  右鍵彙編程式碼 --》選擇Jump to xref to operand交叉引用 --》跳轉到彙編語句。

快捷鍵
  使用F5將彙編自動轉換成虛擬碼。通過Jump-Jump to pseudocode (Tab)跳回到對應的原始碼。
  彙編指令右鍵,選擇Graph View進入檢視。
  檢視選中,空格鍵進入彙編指令。

儲存
  ctrl+F5

退出
  選擇最後一項Dont save the database不儲存資料

修改彙編與打補丁
  點選要修改的指令
  點選Edit,選擇Patch program->Assemble

  
  輸入要修改成的彙編(這裡是一次修改一個位元組,需修改多個位元組要執行多次此操作    

  點選Edit,選擇Patch program->Apply patches to input File,把補丁應用到輸入的檔案

  點選Create backup可以儲存備份
注意:在IDA中打錯了補丁就不能恢復了。