2019年8月5日 星期一

unix組語筆記


gcc inline的ouput第一個會自動從eax取得 默認只能取一個(有空再研究一下gcc的inline好了)
movq 需要 uint64_t, movl 則只需要普通int
當call一個function會有
call function //function是函數簽名
每次進人新function,function內的頭2句都會是
push rbp
mov rsp,rbp
作用是把上一個function的回傳地址推入stack然後再將目前的rsp內容複製到rbp,是一個進入新環境的概念 然後離開函式時會
ret //same as "pop eip"
把當前esp pop進eip
另外再留一下gdb的用法 對理解程序有幫助 首先如果想反組譯某些函數
b*funcname //funcname是函數名 另外建議幫gdb安裝插件例如gdb-peda 一目了然比較好懂
r//same as run 作用是從breakpoint開始函式
nexti//下一個執行組語指令
p *x//打印x位置所存內容
i r//打印r系列register
x /100c addr//顯示addr開始以後100個位的內容