You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中如何避免字符串被strings工具检测到?

如何让字符数组不被strings这类工具检测到?

下面是两种实现方式,以及各自的适用场景和问题:

方法1:用__attribute__((visibility("hidden")))标记隐藏字符串

先定义一个简化标记的PRIVATE宏:

#define PRIVATE __attribute__((visibility("hidden")))
PRIVATE char secret_str[] = "your_secret_string";

通过该属性标记后,字符串会被设置为隐藏可见性,可避免被strings工具扫描到。

方法2:用static修饰字符串

在Linux环境下,static修饰的字符数组仅在当前编译单元可见,不会被strings工具检测到:

static char secret_str[] = "your_secret_string";

但注意:这个方法在Windows环境(使用MINGW64编译)完全无效。编译时会抛出警告:visibility attribute not supported in this configuration; ignored [-Wattributes],即便添加-visibility=hidden编译选项,最终生成的二进制文件里,目标字符串依然能被strings工具dump出来。

内容的提问来源于stack exchange,提问作者loaded_dypper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 07:35:11