64位linux上支援執行32位程式的方法

2021-07-11 13:42:13 字數 841 閱讀 4052

在64位的linux上執行32位程式的時候會出現這種情況:

(2)ldd bin檔案  的輸出為:

not a dynamic executable

(3)file bin檔案 的輸出顯示程式是32位

2.解決方法

debian上只要安裝 ia32-libs這個包(apt-get install ia32-libs)就可以了。

$ sudo apt-get install ia32-libs

無法安裝,找不到庫,就用下面這個方法,

開啟多架構支援,然後更新

$ sudo dpkg --add-architecture i386

$ sudo apt-get update

$ sudo apt-get install ia32-libs

如果沒有ia32-libs就用

$ sudo dpkg --add-architecture i386

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install lib32ncurses5 lib32z1

或者安裝pwntools的過程中如果出錯的話用這句話

sudo apt-get install build-essential libssl-dev libffi-dev python-dev

安裝peda

git clone ~/peda

echo "source ~/peda/peda.py" >> ~/.gdbinit

echo "done! debug your program with gdb and enjoy"

在64位的linux上執行32位的程式

1.症狀 2 ldd bin檔案 的輸出為 not a dynamic executable 3 file bin檔案 的輸出顯示程式是32位 2.解決 debian上只要安裝 ia32 libs這個包 apt get install ia32 libs 就可以了。sudo apt get inst...

sizeof在32位和64位機器上的執行結果

今早在網上偶然看到一篇文章 32位程式移植到64位平台前的準備工作 文中介紹了32位平台的程式向64位平台進行移植需要注意的一些事項和操作建議。自己對於64位平台上各種資料型別分別占用多少位元組,存在一些疑問,所以用c c 中的sizeof分別在這兩種平台上進行了測試。執行結果如下 分別用藍色和紅色...

64位Ubuntu上編譯32位程式

1.確認主機為64位架構的核心,應該輸出為adm64,執行 dpkg print architecture 2.確認開啟了多支架功能,應該輸出為i386,執行 dpkg print foreign architectures 如果沒有,則需要手動開啟,依次執行 sudo dpkg add archi...