gpt4 book ai didi

rust - 将程序宏代码编译或将值堆栈到可执行文件中?

转载 作者:行者123 更新时间:2023-12-03 11:38:13 25 4
gpt4 key购买 nike

我在写程序宏。假设我有一个宏,用其哈希替换代码中密码的每个实例。我不希望它在运行时包含在可执行文件或内存中。
编译时使用的代码和堆栈是否已添加到二进制文件中?我很确定他们不是,但我找不到明确的答案。

最佳答案

一般的问题是“编译环境中的内存是否有可能最终存储在最终的可执行文件中?”。
实际答案是“否”,特别是与proc-macro(在单独的进程中运行)中使用的编译器的堆栈帧或内存有关。
就安全性而言,答案肯定是肯定的。首先,编译器无法保证最终的可执行文件中不包含其一般环境的一部分,例如,人们感到惊讶的是,其用户名被包含在可执行文件中,因为依赖项会生成引用源的错误消息。产生错误的文件(error at /home/myusername/foo/src/...)。其次,编译器无法控制操作系统的功能,因此它的部分行为(同样针对安全性保证)是在实现中定义的。
因此,如果您绝对必须保证最终可执行文件中不包含您的 token ,请在甚至首先调用编译器进程之前对其进行哈希处理。

关于rust - 将程序宏代码编译或将值堆栈到可执行文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65761560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com