小编Ale*_*vic的帖子

静态链接共享对象?还是腐败的文件?

我有一个我从专有来源获得的库,我试图链接它,但我收到以下错误

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)

linux shared-libraries dynamic-linking static-linking

6
推荐指数
1
解决办法
3626
查看次数

是否可以以编程方式更改unix进程的可执行文件名(ucmd)?

是否可以以编程方式更改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)调用了不同的名称只是名字).

unix linux net-snmp

3
推荐指数
1
解决办法
994
查看次数