我在asm有一个小的“hello world”程序。编译和链接后,我可以在最终的elf文件中看到我用于变量和标签的所有名称(用文本编辑器打开)。为什么?不应该用静态或相对地址替换变量等吗? 如何隐藏此信息?
我在ubuntu x86 64上使用nasm:nasm -f elf64 hello.asm && ld -o a hello.o
答案 0 :(得分:1)
是调试信息。您可以使用命令strip将其从目标文件中删除。
答案 1 :(得分:1)
在您的情况下,通过调用--strip-all
标志也可以在链接时完成剥离:
nasm -f elf64 hello.asm && ld -o a hello.o --strip-all
。
这将删除输出文件中的所有符号,如果您只想删除可以使用--strip-debug
的调试符号。
您可以在此处阅读更多选项:http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_3.html