一个不需要任何库的可执行文件,甚至是libc?

Je *_*Rog 2 elf g-wan

[root@ gwan]# file gwan 
gwan: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped
[root@ gwan]# ldd gwan 
    not a dynamic executable

[root@ gwan]# du -csh gwan 
208K    gwan
208K    total
Run Code Online (Sandbox Code Playgroud)

gwan是如何做到的?

作为一个Web服务器,它需要执行套接字编程和许多其他繁重的工作,这些工作都需要与libc链接,但gwan似乎并非如此.怎么可能?

小智 5

像往常一样,它并不神奇,GWAN装有UPX,看起来更小,节省约200kB.打开包装结果如下.

 > ldd gwan
 linux-gate.so.1 =>  (0xf770c000)
 libpthread.so.0 => /usr/lib32/libpthread.so.0 (0xf76e9000)
 librt.so.1 => /usr/lib32/librt.so.1 (0xf76e0000)
 libdl.so.2 => /usr/lib32/libdl.so.2 (0xf76db000)
 libm.so.6 => /usr/lib32/libm.so.6 (0xf76b1000)
 libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7695000)
 libc.so.6 => /usr/lib32/libc.so.6 (0xf752c000)
 /lib/ld-linux.so.2 (0xf770d000)
Run Code Online (Sandbox Code Playgroud)