在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...