IDA.修改程序_ZC收集


ZC: 現在(20171210)使用的IDA為:文件夾"IDA_Pro_v6.8_and_Hex-Rays_Decompiler_(ARM,x64,x86)_Green"(IDA_Pro_v6.8_and_Hex-Rays_Decompiler_(ARM,x64,x86)_Green.rar)

 

1、網上查到的方法:

  IDA安裝目錄 --> cfg 目錄下-> idagui.cfg ,把DISPLAY_PATCH_SUBMENU    = NO  修改這個 NO 為 YES。

  這樣在編輯菜單(Edit)下會多出一個 PATCH Program 的選項,然后就可以用里頭的assemble來修改了

  ZC: 我的這個版本,"Patch program"默認已經存在於"Edit"下。

 

 

2、http://blog.csdn.net/hgy413/article/details/50650232

ZC: 下文中提到的 “Produce file --> Create DIF file” 在哪里?

20.IDA-修改二進制文件、顯示修改點

1.功能選項

Edit▶Patch Program菜單是GUI版本的IDA的一項隱藏功能,用戶需要編輯idagui.cfg配置文件才能激活該菜單 
這里寫圖片描述

可用選項如圖所示 
這里寫圖片描述

1.1.Change byte

用於編輯IDA數據庫中的字節值。相關的字節編輯對話框如圖所示 
這里寫圖片描述 
這個對話框顯示了從光標所在位置開始的16個字節的值。你可以更改顯示的部分或全部字節。 
同時,Address表示了虛擬地址,File offset表示了文件偏移量。

實際上,Hex View可以直接改字節,右鍵Edit即可

1.2.Change word

功能更有限,感覺沒必要介紹了

1.3.Assemble

利用“匯編”選項可以輸入使用一個內部匯編器匯編的匯編語言語句。然后,IDA會將得到的指令字節寫入當前的屏幕位置 
這里寫圖片描述 
但不如人願: 
這里寫圖片描述 
點擊最右邊的Help,我們可以找到答案:

This command allows you to assemble instructions. Currently, only the IBM PC processors provide an assembler, nonetheless, plugin writers can extend or totally replace the built-in assembler by writing their own. The assembler requires to enclose all memory references into square brackets. For example: mov ax, [counter] Also, the keyword 'offset' must not be used. Instead of mov eax, offset name you must write mov eax, name
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

所以寫成push aQqres就OK了

1.4.Apply patches to input file

把改動更新到二進制文件中 
這里寫圖片描述

2.DIF顯示被修改的地方

Produce file▶Create DIF file 
DIF文件是一個純文本文件,其中列出了一個IDA數據庫中所有被修改的字節。 
這個文件的第一行是注釋,第一行是最初的二進制文件的名稱,隨后則是文件中被修改的字節列表。每一行都指出被修改的字節的文件偏移量(而非虛擬地址)、字節的原始值以及字節在數據庫中的當前值。 
這里寫圖片描述

3、

4、

5、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM