ubuntu 環境裡,指定glibc版本執行程式

2022-06-21 07:18:17 字數 786 閱讀 7367

我把它解壓到lib00資料夾裡:dpkg -x libc6_2.31-0ubuntu9.1_amd64.deb  lib00

利用pwntools工具,指定ld.so和libc.so.6,來執行程式,指令碼是這樣的:

from pwn import *context.log_level="

debug

"sh = process(["

./lib00/lib/x86_64-linux-gnu/ld-2.31.so

", "

./hello

"],env=)

pwnlib.gdb.attach(sh)

sh.interactive()

libc2.23和libc2.31的堆塊特徵有所不同,做pwn題會碰到,我們寫個例子,來測試一下:

#include#include

intmain()

編譯它:gcc -g hello.c -o hello

預設libc執行,我們看下它的堆塊布局:

指定libc 執行時,堆布局是這樣的:

可以看到,libc2.31會在申請的chunk前加上乙個大小為0x290的chunk,並且在堆塊釋放後,會在chunk_addr+0x18的地方儲存乙個堆址。

ubuntu10 04下編譯glib庫

ubuntu10.04 glib版本 2.32.3 libc指c函式庫,這是乙個通稱,而glibc是gnu實現的libc,至於glib是一組較高層的函式庫,比如鍊錶 hash等,在linux中glib是建立在glibc之上的,qt的庫就叫做qt,也是建立在glibc和其他一些基本庫之上。glib是g...

ubuntu上解壓目錄裡的檔案到指定資料夾

去除目錄結構加上 strip components n 如 壓縮檔案eg.tar 中檔案資訊為src src src eg.txt 執行 tar xvf eg.tar strip components 1 結果 src src eg.txt 如果執行 tar xvf eg.tar strip com...

ubuntu環境配置失效及指定使用者新增PATH變數

問題描述 在 etc profile中新增的環境配置在終端視窗關閉後再開啟就失效了。解決方法 在 etc bash.bashrc中新增環境變數。再source etc bash.bashrc 檢視是否生效 echo path 在使用者主目錄下,有乙個 bashrc 檔案,編輯該檔案 vim bash...