gpt4 book ai didi

c++ - c++库文件中局部常量是如何存储的

转载 作者:行者123 更新时间:2023-11-28 01:08:06 25 4
gpt4 key购买 nike

我正在编写一个库,我需要在其中使用一些常量整数。我已经在我的 c 函数中将常量 int 声明为局部变量,例如const int 测试 = 45325;

现在我想隐藏这个常量变量。这意味着,如果我将这个库作为 .so 与某人共享,他不应该能够找到这个常量值?是否可以隐藏库中定义的常量整数?请帮忙

这是我的示例代码

int doSomething(){

const int abc = 23456;
int def = abc + 123;

doSomething 在我的 cpp 文件中定义为本地函数。我将此常量用于同一函数内的某些计算。

最佳答案

如果我没理解错的话,你不会太担心导出的符号(因为它是一个普通的普通局部变量,无论如何我都不会担心),而是担心任何人发现这个常量(可能是因为它是用于许可证检查的加密 key 或魔术常量,或类似的东西)。

这在原则上是不可能的。拥有二进制代码的人(在图书馆中必然是这种情况)可以弄清楚他是否愿意。您可以通过以一种模糊的方式计算该值(但要注意编译器优化)来使它变得更难一些,但即便如此,这只会让想要找出答案的人变得更难。这只是意味着有人不会立即在反汇编中看到“mov eax,45325”,但无论哪种方式,它可能不会让某人忙碌超过几分钟。

关于c++ - c++库文件中局部常量是如何存储的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5077018/

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