Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何在可执行文件中隐藏符号名称(来自asm代码)_Assembly_Nasm_Ld - Fatal编程技术网

Assembly 如何在可执行文件中隐藏符号名称(来自asm代码)

Assembly 如何在可执行文件中隐藏符号名称(来自asm代码),assembly,nasm,ld,Assembly,Nasm,Ld,我在asm中有一个小的“hello world”程序。编译和链接后,我可以在最终的elf文件(使用文本编辑器打开)中看到我用于变量和标签的所有名称。为什么?变量等不应该被静态地址或相对地址取代吗? 如何隐藏此信息 我在ubuntu x86 64上使用nasm:nasm-f elf64 hello.asm&&ld-o a hello.o这是调试信息。您可以使用命令将其从对象文件中删除。也可以通过调用--strip all标志在链接时间内完成剥离,在您的情况下: nasm-f elf64 hello

我在asm中有一个小的“hello world”程序。编译和链接后,我可以在最终的elf文件(使用文本编辑器打开)中看到我用于变量和标签的所有名称。为什么?变量等不应该被静态地址或相对地址取代吗? 如何隐藏此信息


我在ubuntu x86 64上使用nasm:
nasm-f elf64 hello.asm&&ld-o a hello.o

这是调试信息。您可以使用命令将其从对象文件中删除。

也可以通过调用
--strip all
标志在链接时间内完成剥离,在您的情况下:
nasm-f elf64 hello.asm&&ld-o a hello.o--剥离所有

这将从输出文件中删除所有符号,如果您只希望删除调试符号,则可以使用
--strip debug

您可以在此处阅读更多选项: