libc.6 是 libc-2-31 的符号链接吗?

libc.6 是 libc-2-31 的符号链接吗?

我正在运行 ubuntu 20.04,并且尝试运行包含以下行的 python pwn 脚本:

libc = ELF("./libc.so.6")

失败的原因如下:

No such file or directory: './libc.so.6'

因此我检查了我的 libc 版本(针对我尝试定位的文件):

$ ldd r2c
        linux-vdso.so.1 (0x00007ffdd95e1000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2505727000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2505938000)

我尝试相应地更新 Python 脚本

libc = ELF("./lib/x86_64-linux-gnu/libc.so.6 ")

但这以同样的方式失败了。然后我检查这个文件:

$ file /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6: symbolic link to libc-2.31.so

这显然只是指向其他 libc 版本的符号链接?这怎么理解呢?

我能做些什么来修复这个问题吗?

答案1

在这两种情况下,您都是通过指定来告诉程序在当前目录中查找./。删除,您将从整个文件系统的根目录.开始搜索/

相关内容