readelf -W -l <stack> | grep GNU_STACK bash: 未预期的记号 "|" 附近有语法错误
时间: 2024-03-24 13:36:38 浏览: 106
抱歉,我的回答中存在错误。命令中的"\<stack\>"应该替换为要检查的二进制文件的路径。以下是正确的命令:
```
readelf -W -l /path/to/binary/file | grep GNU_STACK
```
其中,"/path/to/binary/file"应替换为要检查的二进制文件的实际路径。
如果输出结果中包含"GNU_STACK 0x0",则说明程序的堆栈不可执行,即"-z execstack"选项生效了,否则说明该选项未生效。
相关问题
readelf -W -l ~/2065500101/infosec-lab10/badfile | grep GNU_STACK readelf:错误: 不是 ELF 文件 - 它开头的 magic 字节错误
这个错误可能是因为你指定的文件不是一个ELF二进制文件,或者文件路径不正确。请确保你指定的文件路径正确,并且文件确实是一个ELF格式的二进制文件。
你可以使用"file"命令来检查文件类型,例如:
```
file /path/to/binary/file
```
如果输出结果中包含"ELF"字样,说明该文件是一个ELF格式的二进制文件,可以使用"readelf"命令来检查其ELF头部信息。如果输出结果中不包含"ELF"字样,则说明该文件不是一个ELF二进制文件,此时就无法使用"readelf"命令来检查其ELF头部信息了。
一些其他的命令也可以检查文件是否为ELF格式,例如:
```
objdump -h /path/to/binary/file
```
如果输出结果包含".text"段,说明该文件是一个ELF格式的二进制文件。如果输出结果中没有".text"段,则说明该文件不是一个ELF二进制文件。
readelf -S {库文件路径} | grep debug 列一个他的输出看看
好的,假设我们要查看`libtest.so`文件是否被strip处理,可以使用以下命令:
```bash
readelf -S libtest.so | grep debug
```
如果输出结果中没有包含`debug`关键字,说明该文件已经被strip处理过,反之则没有。
示例输出:
```
[23] .debug_aranges PROGBITS 0000000000000000 00005420
[24] .debug_info PROGBITS 0000000000000000 00008a40
[25] .debug_abbrev PROGBITS 0000000000000000 0000e0c3
[26] .debug_line PROGBITS 0000000000000000 0000f0c2
[27] .debug_str PROGBITS 0000000000000000 00011c9e
```
由于这个输出结果中包含了`debug`关键字,因此可以得出结论,该文件没有进行strip处理。
阅读全文