PWN入門之簡析延遲繫結技術

2021-10-09 07:20:06 字數 697 閱讀 3936

對於延遲繫結技術還是不太了解適宜看一下這篇文章

延遲繫結繫結技術就是linux下elf程式在呼叫函式時動態鏈結的方式。為了優化記憶體,加快執行速度等等原因,elf程式運用了這樣的技術來呼叫函式。

簡單的說就是程式在呼叫函式時先jmp fun@plt 進入plt表。接著jmp fun@got,這時候的got表中並沒有儲存函式真實的位址。程式到這裡需要呼叫_dl_runtime_resolve這個函式。通過這個函式再填充got表然後在下一次呼叫fun的時候進入真正的函式位址。

下面的劃重點

_dl_runtime_resolve這個函式在got[2]中,而got[0]got[1]分別是.dynamic和link_map。這兩項可以理解為在呼叫_dl_runtime_resolve時候需要準備的。

在函式第一次呼叫的時候到got表中需要準備_dl_runtime_resolve的引數。首先jmp回plt表的乙個位置。接著push 0x20,在棧上準備呼叫函式的引數。然後jmp到plt表的另乙個地方push link_map的位址,這裡也是在準備引數。後面jmp got[2] 呼叫_dl_runtime_solve對got表進行填充。下次再次呼叫函式時直接jmp .plt jmp .got進入函式真實位址

附上大佬對於_dl_runtime_solve的原理講解的鏈結。

_dl_runtime_solve

pwn之堆入門

在程式執行的過程中,由malloc申請的記憶體空間被稱作chunk,而當程式申請的chunk被free時會被加入到相應的空閒管理列表 bin 中。解釋 前乙個chunk塊的大小,如果chunk size的p位為1則pre size無效,上個chunk可以使用pre size的空間。前乙個chunk塊...

Python之函式簡析 二

python之函式 本節重點理解一下map,reduce,filter,lambda,sorted函式的用法 map函式例項 usr bin env python coding utf8 time 2017 11 2 9 32 author hantong file func.py map函式,返回...

HashMap簡析之 HashCode衝突的解決

總述 通過一定的演算法,將key的hashcode轉換成陣列的index 將key,value,hash等資訊儲存在陣列對應的index位置上.問題 1.某些key的hashcode相同 2.hashcode不同,但一定演算法後對映到陣列的index相同 這個就是常說的hashcode衝突問題.1....