od/ida筆記
od筆記
程序運行到被調用的地方,暫停od,alt+k 查看主線程調用棧,找到被調用函數的地方
根據ida 找到上層調用函數,在return 處回車。看是哪調用的。找到比對的點。修改匯編 右鍵,保存到可執行文件,復制全部。右鍵 保存文件
編輯內存改字符串 alt+m 進入內存,ctrl+b 查找unicode ctrl+e 編輯
od快捷鍵
Ctrl + F2 重啟程序,即重新啟動被調試程序( 重新載?程序 )。如果當前沒有調試的程序,OllyDbg會運?歷史列表[historylist]中的第?個程序。
Alt + F2 關閉,即關閉被調試程序。如果程序仍在運?,會彈出?個提?信息,詢問您是否要關閉程序。
F2 設置斷點(INT3型斷點),只要在光標定位的位置按 F2 鍵即可,再按?次 F2鍵則會刪除斷點。
Shift + F2 設置條件斷點
F7 單步步?到下?條命令( 單步進? ),如果當前命令是?個函數[Call],則會停在這個函數體的第?條命令上
Ctr l+ F7 ?動步?,?條?條的執?命令
F8 單步步?到下?條命令( 單步跳過 ),如果當前命令是?個函數[Call],則會一次執行完畢
Ctrl + F8 ?動步過,?條?條的執?命令
F9 運?,遇到斷點則停在斷點位置。如果沒有設置相應斷點的話,被調試的程序將直接開始運?直到結束。
Ctrl + F9 把本層call執?完。即執?函數代碼內的命令,直到遇到 RETN 命令,?于跳出函數體。在此期間不進??函數也不更新CPU數據。
F12 暫停程序,F9 可以繼續運?。
空格 擊反匯編窗?,可以修改原有匯編代碼
回車 Enter 如果當前命令是?個跳轉、函數或者是轉換表的?個部分,則進?到?的地址。即在返匯編窗???點擊 call,可以查看 call 內反匯編代碼。
Alt + B 顯?斷點窗?。在這個窗?中,您可以編輯、刪除、或跟進到斷點處。
Alt + C 顯? CPU 窗?。
Alt + E 顯?模塊列表[list of modules]。
Alt + K 顯?調?棧[Call stack]窗?。
Alt + L 顯??志窗?。
Alt + M 顯?內存窗?。
Alt + O 顯?選項對話框[Options dialog]
Alt + X 關閉 OllyDbg。
ida快捷鍵
shift+f12:可以打開string窗口
F5 查看偽代碼
g:直接跳轉到某個地址
ctrl+鼠標滾輪:能夠調節流程視圖的大小
esc:回退鍵,能夠倒回上一部操作的視圖(只有在反匯編窗口才是這個作用,如果是在其他窗口按下esc,會關閉該窗口)
空格鍵 反匯編窗口切換文本圖形
tab 反匯編和匯編切換
找到system調用的地方:ctrl+f 左側搜索system F5(反匯編) x(查看引用)tab切換到匯編 查看內存地址
ROPgadget
x86都是靠棧來傳遞參數的而x64換了它順序是rdi, rsi, rdx, rcx, r8, r9如果多于6個參數才會用棧
ROPgadget --binary 文件名 --only "pop|ret" | grep rdi
ROPgadget --binary 文件名 --only "pop|ret" | grep rsi
ROPgadget --binary 文件名 --only "pop|ret"
ROPgadget --binary 文件名 --only 'int' 查找有int 0x80的地址
ROPgadget --binary 文件名 --string '/bin/sh'
ROPgadget --binary 文件名 --string '/sh'
ROPgadget --binary 文件名 --string 'sh'
ROPgadget --binary 文件名 --string 'cat flag'
ROPgadget --binary 文件名 --string 'cat flag.txt'
參考鏈接:https://wenku.baidu.com/view/1e114d3b5aeef8c75fbfc77da26925c52cc591cb.html
浙公網安備 33010602011771號