-lcrypt 错误交叉编译 64 到 32

哈尼斯法

我正在尝试编译可在此处找到的dirtycow漏洞利用文件

gcc -pthread dirty.c -o dirty -m32 -lcrypt

因为我的目标是 32 位,所以我编译它-m32-lycrypt确保它按预期工作。但是编译时出现错误,

/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libcrypt.so when searching for -lcrypt
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libcrypt.a when searching for -lcrypt
/usr/bin/ld: cannot find -lcrypt
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/libcrypt.so when searching for -lcrypt
collect2: error: ld returned 1 exit status

加密错误

我已经用这个命令安装了 multilib 和 i386

sudo apt-get install gcc-multilib libc6-dev-i386

但它仍然无法正常工作。

这是我设备中的 libcrypt 列表:

$ locate libcrypt
/usr/i686-w64-mingw32/lib/libcrypt32.a
/usr/i686-w64-mingw32/lib/libcryptnet.a
/usr/i686-w64-mingw32/lib/libcryptsp.a
/usr/i686-w64-mingw32/lib/libcryptxml.a
/usr/lib/i386-linux-gnu/libcrypt.so.1
/usr/lib/i386-linux-gnu/libcrypt.so.1.1.0
/usr/lib/nsight-compute/host/linux-desktop-glibc_2_11_3-x64/libcrypto.so.1.0.0
/usr/lib/nsight-systems/host-linux-x64/libcrypto.so.1.0.0
/usr/lib/x86_64-linux-gnu/libcrypt.a
/usr/lib/x86_64-linux-gnu/libcrypt.so
/usr/lib/x86_64-linux-gnu/libcrypt.so.1
/usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
/usr/lib/x86_64-linux-gnu/libcrypto.a
/usr/lib/x86_64-linux-gnu/libcrypto.so
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12
/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.6.0
/usr/lib/x86_64-linux-gnu/pkgconfig/libcrypt.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/libcrypto.pc
/usr/share/bug/libcryptsetup12
/usr/share/doc/libcrypt-dev
/usr/share/doc/libcrypt1
/usr/share/doc/libcryptsetup12
/usr/share/doc/libcrypt1/README.md.gz
/usr/share/doc/libcrypt1/TODO.md.gz
/usr/share/doc/libcrypt1/changelog.Debian.gz
/usr/share/doc/libcrypt1/changelog.gz
/usr/share/doc/libcrypt1/copyright
/usr/share/doc/libcryptsetup12/changelog.Debian.gz
/usr/share/doc/libcryptsetup12/changelog.gz
/usr/share/doc/libcryptsetup12/copyright
/usr/x86_64-w64-mingw32/lib/libcrypt32.a
/usr/x86_64-w64-mingw32/lib/libcryptdlg.a
/usr/x86_64-w64-mingw32/lib/libcryptdll.a
/usr/x86_64-w64-mingw32/lib/libcryptext.a
/usr/x86_64-w64-mingw32/lib/libcryptnet.a
/usr/x86_64-w64-mingw32/lib/libcryptsp.a
/usr/x86_64-w64-mingw32/lib/libcryptsvc.a
/usr/x86_64-w64-mingw32/lib/libcryptui.a
/usr/x86_64-w64-mingw32/lib/libcryptxml.a
/var/cache/apt/archives/libcrypt-dev_1%3a4.4.17-1_amd64.deb
/var/cache/apt/archives/libcrypt1_1%3a4.4.17-1_amd64.deb
/var/cache/apt/archives/libcrypt1_1%3a4.4.17-1_i386.deb
/var/lib/dpkg/info/libcrypt-dev:amd64.list
/var/lib/dpkg/info/libcrypt-dev:amd64.md5sums
/var/lib/dpkg/info/libcrypt1:amd64.list
/var/lib/dpkg/info/libcrypt1:amd64.md5sums
/var/lib/dpkg/info/libcrypt1:amd64.shlibs
/var/lib/dpkg/info/libcrypt1:amd64.symbols
/var/lib/dpkg/info/libcrypt1:amd64.triggers
/var/lib/dpkg/info/libcrypt1:i386.list
/var/lib/dpkg/info/libcrypt1:i386.md5sums
/var/lib/dpkg/info/libcrypt1:i386.shlibs
/var/lib/dpkg/info/libcrypt1:i386.symbols
/var/lib/dpkg/info/libcrypt1:i386.triggers
/var/lib/dpkg/info/libcryptsetup12:amd64.list
/var/lib/dpkg/info/libcryptsetup12:amd64.md5sums
/var/lib/dpkg/info/libcryptsetup12:amd64.shlibs
/var/lib/dpkg/info/libcryptsetup12:amd64.symbols
/var/lib/dpkg/info/libcryptsetup12:amd64.triggers

有办法解决吗?还是我应该制作一个 32 位 VM 来编译它?

斯蒂芬·基特

您需要安装libc6-dev:i386,这是包含的包/usr/lib/i386-linux-gnu/libcrypt.so(这是链接器需要的):

sudo apt install libc6-dev:i386

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从linux x32 / x64到netbsd mips / el的交叉编译

来自分类Dev

从linux x32 / x64到netbsd mips / el的交叉编译

来自分类Dev

从x64系统交叉编译c内核到x32二进制文件

来自分类Dev

float64到float32 Cython错误

来自分类Dev

float64到float32 Cython错误

来自分类Dev

如何将现有的deb软件包从64位架构交叉编译到32位架构

来自分类Dev

如何将现有的deb软件包从64位架构交叉编译到32位架构

来自分类Dev

从python 32位到python 64位

来自分类Dev

从python 32位到python 64位

来自分类Dev

从Float64到Float32

来自分类Dev

14.04.01 32位:交叉编译时缺少g ++ 64位包含文件

来自分类Dev

交叉编译gstreamer失败:x86-64-> ARMv6 32位

来自分类Dev

与i686-w64-mingw32-g ++交叉编译,并使用main()作为入口点

来自分类Dev

14.04.01 32位:交叉编译时缺少g ++ 64位包含文件

来自分类Dev

Rustup:从 Linux 到 Windows i686 的错误交叉编译

来自分类Dev

针对64/32位iOS进行编译

来自分类Dev

使用32或64编译器的CMake

来自分类Dev

如何从32位Vista升级到64位Vista?

来自分类Dev

将32位RHEL安装升级到64位

来自分类Dev

C代码32到64位类型转换

来自分类Dev

Nim交叉编译到C

来自分类Dev

在64位Linux上编译32位Qt-致命错误:gnu / lib-names-32.h

来自分类Dev

x64 MOV 32位立即到64位寄存器

来自分类Dev

如何从Windows交叉编译到Linux?

来自分类Dev

从Mac上的XCode交叉编译到Windows

来自分类Dev

在64位计算机上编译32位内核

来自分类Dev

在64位Debian环境中编译32位Qt源

来自分类Dev

如何判断我的代码是32位还是64位编译

来自分类Dev

在64位计算机上编译32位内核