我有一个我从专有来源获得的库,我试图链接它,但我收到以下错误
libxxx.so:文件无法识别:文件格式无法识别collect2:ld返回1退出状态
确实如此
$ ldd ./libxxx.so
statically linked
Run Code Online (Sandbox Code Playgroud)
这到底是什么意思?在我的生活中从来没有看到过静态联系的.so.值得注意的是,同一软件的最后一个版本包含相同的.so,其中ldd显示"正常"输出并且工作正常.
$ file ./libxxx.so
./libxxx.so: ELF 32-bit LSB shared object, Intel 80386, version 1
Run Code Online (Sandbox Code Playgroud)
(SYSV),剥离
但是nm,objdump也看不到任何东西,readelf返回错误读取字符串表.我可以安全地假设这个.所以我很沮丧,或者在进入"企业支持"并等待两个月让他们承认我的存在之前还有其他的东西可以尝试.
$ objdump -a libxxx.so
objdump: libxxx.so: File format not recognized
$ readelf -a libxxx.so
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file) …Run Code Online (Sandbox Code Playgroud) 是否可以以编程方式更改ps报告的unix进程的可执行文件名(ucmd)?
unix/POSIX方式会很好,但Linux特定的解决方案就足够了.
我想改变这里报道的内容
> ps -o ucmd
CMD
zsh
ps
Run Code Online (Sandbox Code Playgroud)
不是这个,我知道;)
> ps -o command
COMMAND
zsh
ps -o command
Run Code Online (Sandbox Code Playgroud)
谢谢
PS不试图创建rootkit,它只是net-snmp在检查进程时查看此名称,并且我的程序在从init调用时直接从/etc/init.d(etc/rcX.d/SNNname)调用了不同的名称只是名字).