【发布时间】:2018-09-20 09:34:23
【问题描述】:
出于取证原因,我想在 Centos 上编译一些基本工具,如 cat、grep、vi、find、md5sum、dir..等。在取证时检查进程列表非常重要。所以我尝试编译 ps (procps)静态地。我确实失败了。 以下是我尝试的步骤:
git clone https://gitlab.com/procps-ng/procps.git
cd procps
./autogen.sh
./configure LDFLAGS="-static"
make SHARED=0 CC='gcc -static'
还搜索了很多帖子并尝试过:
./configure LDFLAGS="-all-static"
./configure --enable-static --disable-shared
make SHARED=0 CC='gcc -static'
make -e LDFLAGS=-all-static
export LDFLAGS="-static -Wl,--no-export-dynamic"
make -e LDFLAGS=-all-static
make sense CC="gcc -static"
将这些配置与make结合起来,这些都不起作用,有些编译失败,有些编译成功,但是当我用ldd pscommands检查它时,它显示了
[root@localhost ps]# ldd pscommand
linux-vdso.so.1 => (0x00007ffca9bc2000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f3b078cd000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3b07500000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3b07ad1000)
procps 是否对这些非静态库有一些深度依赖?
【问题讨论】:
-
为什么不用busybox? (注意:存在很多内核后门。)
标签: c linux makefile compilation static