1.make無法安裝:
2.安裝軟體包時遇到簽名無效,明文簽署檔案不可用等問題,進行源更新:
3.make 出現pip8.1.1 requires ssl/tls:
安裝openssl-devel
yum install opensll-devel
apt-get install libssl-dev
apt-get install openssl
4.安裝pip3源更新問題:
5.更新pip3卻顯示異常,出現importerror: cannot import name main:
6.gcc編譯程式:
7.關閉aslr時,出現許可權不夠問題:
8.gcc生成關閉aslr關閉pie並不生成cnanary命令:
gcc -fno-stack-protector -o newfile file -no-pie
8.64位編譯32位開啟多架構支援:
1.pwntools安裝,與模組介紹:
2.ida
3.gdb安裝相關:
gef外掛程式安裝:
setvbuf全緩衝,行緩衝,不帶緩衝:
1.區分暫存器:
%eax、%edx和%ecx為主調函式儲存暫存器
%ebx、%esi和%edi為被調函式儲存暫存器
esp(stack pointer)是堆疊指標暫存器,存放執行函式對應棧幀的棧頂位址(也是系統棧的頂部),且始終指向棧頂;
ebp(base pointer)是棧幀基址指標暫存器,存放執行函式對應棧幀的棧底位址,用於c執行庫訪問棧中的區域性變數和引數。
eip(instruction pointer)是指令暫存器,指向處理器下條等待執行的指令位址(**段內的偏移量),每次執行完相應彙編指令eip值就會增加。
2.理解棧在函式呼叫時的變化過程:
3.指令
add esp,*** 降低棧頂,**當前的棧幀
pop ebp 將上乙個棧幀底部位置恢復到ebp
retn 這條指令有兩個功能 a)彈出當前棧頂元素,即彈出棧幀中的返回位址至此,棧幀恢復工作完成 b)讓處理器跳轉到彈出的返回位址,恢復呼叫前的**區
區分 mov %esp,%ebp與 mov %ebp,%esp
前者為開闢新棧幀,後者為釋放棧空間
4.main中呼叫func_a,func_a中再呼叫func_b的函式呼叫實現
Ubuntu 遇到的問題
如果是root許可權,可以 wq 強行儲存退出 如果提示唯讀,用sudo執行 即sudo vi etc resolv.conf,然後執行完重啟系統解決 按esc鍵 跳到命令模式,然後 w 儲存檔案但不退出vi w file 將修改另外儲存到file中,不退出vi w 強制儲存,不推出vi wq 儲存...
棧溢位問題分析
近日,程式總是莫名其妙的coredump,而且還是在變數定義的時候 如 int a 1 百思不得其解。在這種情況下,只有幾種情況可能出現 記憶體踩踏 棧溢位。在經過長時間的分析確認,肯定不是記憶體踩踏。剩下的就是棧溢位了。linux下一般單個程式棧大小為10m,可用ulimit s查閱。一般情況下,...
段錯誤與棧溢位
編譯後產生的可執行檔案裡儲存著什麼內容 和作業系統相關 在可執行檔案中,正文段 text segment 儲存指令,資料段 data segment 儲存已初始化的全域性變數,bss bss segment 儲存未賦值的全域性變數所需的空間。呼叫棧並不儲存在可執行檔案中,而是在執行時建立,呼叫棧所在...