如果开发人员编译Crystal程序,二进制文件将存储哪些元数据以及如何删除任何敏感信息?敏感是指设备标识符,本地IP地址或其他任何内容 .
我知道Crystal使用时存储基本的调试信息:
crystal build myprogram.cr
然后,您可以使用 --debug 标志来存储所有调试信息(可靠的敏感信息作为源代码示例):
--debug
crystal build --debug myprogram.cr
要避免调试信息,请使用 --no-debug 标志:
--no-debug
crystal build --no-debug myprogram.cr
并优化和混淆更多二进制使用 --release 标志:
--release
crystal build --release --no-debug myprogram.cr
据我所知,编译语言可以在使用调试标志进行编译时存储敏感信息 . 敏感信息通常是嵌入生成的二进制文件的源代码 .
您可以使用 objdump -s --section .comment myprogram.bin 查看二进制元数据,如下所示:
objdump -s --section .comment myprogram.bin
.stdin: file format elf64-x86-64 Contents of section .comment: 0000 4743433a 2028474e 55292036 2e312e31 GCC: (GNU) 6.1.1 0010 20323031 36303830 32004743 433a2028 20160802.GCC: ( 0020 474e5529 20362e33 2e312032 30313730 GNU) 6.3.1 20170 0030 31303900 4743433a 2028474e 55292034 109.GCC: (GNU) 4 0040 2e372e32 20323031 32313031 35202852 .7.2 20121015 (R 0050 65642048 61742034 2e372e32 2d352900 ed Hat 4.7.2-5).
1 回答
我知道Crystal使用时存储基本的调试信息:
然后,您可以使用
--debug
标志来存储所有调试信息(可靠的敏感信息作为源代码示例):要避免调试信息,请使用
--no-debug
标志:并优化和混淆更多二进制使用
--release
标志:据我所知,编译语言可以在使用调试标志进行编译时存储敏感信息 . 敏感信息通常是嵌入生成的二进制文件的源代码 .
您可以使用
objdump -s --section .comment myprogram.bin
查看二进制元数据,如下所示: