【问题标题】:Does Crystal store any sensitive information?Crystal 是否存储任何敏感信息?
【发布时间】:2017-09-11 17:00:50
【问题描述】:

如果开发人员编译了一个 Crystal 程序,二进制文件将存储哪些元数据以及如何删除任何敏感信息?我所说的敏感是指设备标识符、本地 IP 地址或其他任何内容。

【问题讨论】:

    标签: crystal-lang


    【解决方案1】:

    我知道Crystal store 使用时的基本调试信息:

    crystal build myprogram.cr
    

    然后您可以使用--debug 标志来存储所有调试信息(可能的敏感信息作为源代码示例):

    crystal build --debug myprogram.cr
    

    为避免调试信息,请使用--no-debug 标志:

    crystal build --no-debug myprogram.cr
    

    为了进一步优化和混淆二进制文件,请使用--release 标志:

    crystal build --release --no-debug myprogram.cr
    

    据我所知,当您使用调试标志进行编译时,编译语言可能会存储敏感信息。敏感信息通常是嵌入生成的二进制文件的源代码。

    您可以使用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).
    

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      相关资源
      最近更新 更多