我在asm中有一個小小的「hello world」程序。編譯和鏈接後,我可以看到我用於最終精靈文件中的變量和標籤的所有名稱(用文本編輯器打開)。爲什麼?不應該用靜態或相對地址來替換變量等嗎? 如何隱藏這些信息?如何隱藏可執行文件中的符號名稱(來自asm代碼)
我使用Ubuntu的x86的64 NASM:nasm -f elf64 hello.asm && ld -o a hello.o
我在asm中有一個小小的「hello world」程序。編譯和鏈接後,我可以看到我用於最終精靈文件中的變量和標籤的所有名稱(用文本編輯器打開)。爲什麼?不應該用靜態或相對地址來替換變量等嗎? 如何隱藏這些信息?如何隱藏可執行文件中的符號名稱(來自asm代碼)
我使用Ubuntu的x86的64 NASM:nasm -f elf64 hello.asm && ld -o a hello.o
這是調試信息。您可以使用命令strip將其從目標文件中刪除。
通過調用--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
難道它不是兩個? –