Reversing Notes

IDA

快速鍵
說明
左鍵點兩下
跳過去 object / function 所在位址
g
跳到指定位址
x
尋找參考點(那裡使用到現在指標指向的object)
esc
返回上一個地方
F5
反編譯
n
重新命名

x64dbg

快速鍵
說明
Ctrl-G
跳到指定位址,可以輸入 API Name 或是記憶體位址
Ctrl-F2
重新執行正在被 debug 的程式
F2
在現在選取的拿一行 assembly 下斷點
F7
步入 call
F8
步進(執行完 call 指令,不跟進去)
F9
直接執行
Ctrl-F9
執行到 ret 停下來

GDB

PEDA 外掛程式 https://github.com/longld/peda

指令
說明 
範例
b func
在 func 下斷點
b main
b *0xADD
在 ADDR 下斷點
b *0x08048000
c
繼續執行

r
開始執行 / 重新執行

r args
開始執行(給被debug的程式參數)

si
step into(跟進去 call)

ni
next instruction(不跟進去 call)

x
印 pointer 指向的資料(help x看詳細用法)
x/16xw $esp
p
直接印出資料
p/d 0x5566
i b
列出所有 breakpoints (info braekpoints)

i file
列出檔案資訊

d $NUM
刪除第 $NUM 個斷點

q
關閉 gdb

set *(char)0xadd = 5
寫入記憶體,語法類似 C

set $rax = 0x87
改變 register 的值(也可以改 EIP / RIP)

fini
執行到 ret (離開現在的 function)
finish
bt
backtrace,印出 function call 的記錄
backtrace