【问题标题】:How to hide symbol names in executable (from asm code)如何在可执行文件中隐藏符号名称(来自 asm 代码)
【发布时间】:2013-10-27 08:55:46
【问题描述】:

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

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

【问题讨论】:

    标签: assembly nasm ld


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      也可以通过调用--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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-29
        • 1970-01-01
        • 1970-01-01
        • 2017-01-31
        • 2015-12-07
        • 1970-01-01
        • 2012-03-27
        相关资源
        最近更新 更多