IDA Pro和 Linux 使用總結


持續更新ing~~~~

前言

參考並推薦以下博文:

https://xz.aliyun.com/t/4205#toc-11

 

IDA使用

一、操作技巧

  1. C:將十六進制數據分析為代碼;D鍵--當作數據進行分析;P鍵--將該段代碼分析為函數。
  2. CTRL+S:打開段視圖,可以選擇某個數據段進行跳轉。
  3. x:光標停留在某個函數、變量,按該鍵,可以查看交叉引用。
  4. n:重命名變量或函數。
  5. y:更改變量的類型。
  6. u:取消對函數、代碼、數據的定義。
  7. 打開函數調用圖:菜單欄中,view-->graphs-->Function calls(快捷鍵Ctrl+F12)。
  8. CTRL+F7運行至返回,直到遇到RETN(或斷點)時才停止。
  9. Alt+K:修改棧指針。實在改不對就nop掉吧。

二、一些疑問和想法

  1. idc腳本的使用--加密與解密P83。
  2. 如果函數中存在花指令或者一些故意破壞堆棧的指令,可以先patch掉后按p分析為函數。
  3. 在創建函數時,若無法確定函數結束位置或者發現非法指令,則會創建失敗。alt+p創建一個函數,需要設定開頭和結尾。如果還不行,就在編輯里創建一個新的segment。
  4. 導入自己設計的結構體或C庫中的:View-->Open Subviews-->Local Types中可以看到本地已有的結構體,在該窗口中右擊insert可以添加新的結構體。
  5. ida似乎無法同時調試父子進程(在子進程中使用ptrace(0,0,0,0)時),暫時沒有深入研究。
  6. patch后的代碼需要在Edit-->Patch Progam-->Apply patches to input file才能保存到原文件。
  7. 撤銷patch,Edit-->Keypatch-->undo last patch。
  8. 如果打了很多次patch,不好分清該撤銷哪一次的patch,那么可以在菜單欄中打開patched bytes界面。(view-->open subviews-->patched bytes)

Linux使用部分

  1. 查看進程信息:
    ps -ef | grep 進程名
    ls -l /proc/進程id
  2. 。。。

雜七雜八調試技巧匯總

1.javascript調試 

按F12,如下圖打開控制台,點擊Source,可以在js文件里雙擊代碼所在的行下斷點。

 

 

 點擊該按鈕開始執行程序或繼續執行。

 

 添加一句代碼console.log( xxx )來打印輸出自己想要獲取的信息。

 


免責聲明!

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



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