ctf pwn ida 分析技巧


幾年前的筆記,搬運過來
---
 
1 先根據運行程序得到的信息命名外圍函數,主要函數大寫開頭
2 /添加注釋
3 直接vim程序,修改alarm為isnan可以patch掉alarm函數
4 y 可以修改變量類型,函數返回類型
5 對於重要的全局變量,x查看每個引用的地方
6 subview打開local type窗口,插入后雙擊導入到structures窗口,
    在f5窗口中可y修改變量類型
    1 插入時可先插入連續int,abcd這樣命名,確定對應字母含義后在structures窗口修改
    2 使用d修改字段類型
7 修改變量類型或者結構體后,在f5窗口按f5重新反編譯
8 如果要修改結構體,可在local type中操作,會自動同步到structures窗口中
9 在觀察數據時,可以修改全局變量的類型比如 Flower *ptr[100];然后可以轉換數組,可使用r修改全局變量的名字
10 在f5窗口中,可以雙擊本地變量的類型進入stack of raise窗口,可以d修改變量類型
11 \是否顯示強制類型轉換
12 在結構體中對於起標志作用的字段,可以先命名為flag,確定作用后再修改
13 注意修改當前函數的類型,有時候可以讓整個函數的結構改變,更易讀
14 可以右鍵printf這種函數,刪除可變參數
15 可如下畫圖畫出對堆操作的步驟
16 對於堆exploit,多利用trace malloc
17 信息泄漏的小技巧
p.recvuntil('aaa')
end = 'bbb'
leak_data = p.recvuntil(end)[:-len(end)]
 
18 可以在exp后面需要的部分設置context.log_level
19 DynELF使用技巧
    先泄漏出libc中一個地址
ptr = leak(atoi_got)
d = DynELF(leak, ptr)
system = d.lookup('system')
d.bases()
   
 


免責聲明!

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



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