linux内存分配堆栈数据段代码段,linux – LD_PRELOAD堆栈和数据段内存分配
你好,
我正在編寫一個Linux模塊(基于名為“Ccontrol”的GitHub項目)來創(chuàng)建緩存分區(qū)(a.k.a頁面著色),以減輕定時側(cè)通道攻擊(用于防止Prime Probe等攻擊).
我已經(jīng)使用LD_PRELOAD系統(tǒng)env變量來覆蓋所有malloc(),calloc()和free()調(diào)用,并用顏色感知調(diào)用替換它們.
現(xiàn)在我正在尋找顏色堆棧和數(shù)據(jù)段的顏色.
用于為新生進程分配內(nèi)存的系統(tǒng)調(diào)用/庫是什么?
有沒有辦法使用LD_PRELOAD或任何其他方法覆蓋此調(diào)用(不重新編譯內(nèi)核)?
謝謝大家,
加爾
解決方法:
有兩個內(nèi)存分配系統(tǒng)調(diào)用:sbrk,它擴展(連續(xù))堆段和mmap,用于將單獨的匿名內(nèi)存段映射到調(diào)用進程的地址空間.
但是,您將無法使用LD_PRELOAD來覆蓋這些.
如果您覆蓋的代碼通過DSO導(dǎo)出的libc包裝器進行這些調(diào)用,您將只能執(zhí)行此操作,這意味著您將無法通過未導(dǎo)出的包裝器覆蓋直接系統(tǒng)調(diào)用和系統(tǒng)調(diào)用(DSO-internal( __attribute __((visibility(“hidden”)))),大多數(shù)libc實現(xiàn)都使用了很多.你也無法覆蓋動態(tài)鏈接器所做的系統(tǒng)調(diào)用.
如果您需要一種強大的覆蓋調(diào)用方式,則需要轉(zhuǎn)向ptrace或修改內(nèi)核.
標簽:linux,linux-kernel,linux-device-driver
來源: https://codeday.me/bug/20190705/1391242.html
總結(jié)
以上是生活随笔為你收集整理的linux内存分配堆栈数据段代码段,linux – LD_PRELOAD堆栈和数据段内存分配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地下城与勇士里的月溪镇冰石干什么用的
- 下一篇: linux redis客户端,Redis