久久精品国产99国产精品,农村大炕弄老女人,人马配速90分钟,香蕉成人伊视频在线观看

shellcode加載器 elf可執行文件如何動態加載一個so?

elf可執行文件如何動態加載一個so?有三種方法:1。在elf的末尾插入外殼代碼,然后修改elf文件的最后一個pt,通過增加段頭來加載段的長度。將DT_uinitsection或DT_initarra

elf可執行文件如何動態加載一個so?

有三種方法:1。在elf的末尾插入外殼代碼,然后修改elf文件的最后一個pt,通過增加段頭來加載段的長度。將DT_uinitsection或DT_initarray的指針指向您的外殼代碼,這也是一般增強技術的方法。2將此ELF文件a打包到另一個ELF文件B中。在完成B中的操作后,加載a。如果不想將a釋放到文件系統中,則必須自己實現鏈接器。納加的增援也做了同樣的事。三。修改ELF文件中的動態部分并添加一個新的DT類型的部分。所需的節點還應在strsz部分中寫入要加載到DT的so的名稱,因為ELF文件中的所有地址都是死的,所以可能沒有空位置供您插入新節點。您可能需要刪除現有節點才能插入新節點。如果您熟悉llvm,那么可以使用llvm將ELF文件轉換為與地址無關的LIR語言,然后對其進行修改。

c語言程序經過編譯后,每條指令都有一個內存地址,那兩個程序如果有相同內存地址的指令怎么辦?

將程序的代碼、數據和堆棧作為一塊完整的磚塊。編譯器是一個制磚機,它安排了這個磚的內部結構。

劃線系統只是一塊磚,不會有互相覆蓋的矛盾。

如果您運行多任務處理,則會有更多的磚塊。但在這個時候,操作系統通常是用來管理磚塊的。堆放磚塊時,每一塊磚塊都會給出不同的起始坐標,以確保兩塊磚塊不占一個空間。

早期的DOS操作系統規定每個程序塊的高度不應超過1米。編譯器制作的每個程序塊都使用偏移地址0000H ffffh來區分單元,但是當操作系統將程序塊移動到物理內存時,它會給每個程序塊一個不同的段起始地址,偏移地址是物理地址。所以沒有重疊。

當然,還有編譯器。除了構建磚塊外,編譯器還將生成一個規范標簽,告知操作系統磚塊的厚度,這樣操作系統就可以在不浪費空間的情況下很好地堆疊磚塊。不同的操作系統有不同的標簽格式,所以windows程序不能直接在Linux下運行。

后來,MMU出現在處理器、內存管理單元中,程序地址空間和物理地址空間之間的轉換變得更加復雜。但是,確保不同的程序不覆蓋自己的空間是一項基本要求。

程序可能會覆蓋其他程序空間,這可能是惡意代碼造成的。CPU的安全特性越來越強,這是很少見的。

主站蜘蛛池模板: 铜川市| 江孜县| 古交市| 会泽县| 遵化市| 平定县| 家居| 北京市| 长顺县| 如皋市| 娄底市| 阿勒泰市| 渝北区| 思茅市| 丽江市| 麻栗坡县| 蓬莱市| 厦门市| 松阳县| 横峰县| 铁岭县| 陈巴尔虎旗| 博客| 阿鲁科尔沁旗| 江安县| 兴业县| 张掖市| 自治县| 黄陵县| 涟水县| 旬邑县| 县级市| 邵阳县| 大竹县| 莲花县| 永泰县| 丁青县| 安乡县| 荥阳市| 长兴县| 连南|