百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
O

Obfuscate

> 编程语言
开源

保证编译时字符串常量混淆的头文件库,适用于 C++14

1.3K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

保证编译时字符串常量混淆的头文件库,适用于 C++14

源代码可在 GitHub 中找到

伪装

针对 C++14 的保证编译时字符串常量伪装的头文件库。

问题是什么? 当在 C++ 程序中使用纯文本字符串常量时,它们会被原样编译成最终的二进制文件。这使得它们极其容易被发现。只需在文本编辑器中打开二进制文件,即可清晰地看到所有嵌入的字符串常量。还有一个名为 strings 的特殊工具,可用于在二进制文件中搜索纯文本字符串。

这个库做什么? 这个只包含头文件的库旨在使二进制文件中的嵌入式字符串字面量难以被发现(但不是不可能),通过在编译时使用常量表达式对其进行 XOR 加密,迫使编译器使用加密的字符串而不是明文字面量。使用 AY_OBFUSCATE 还可以消除对字符串的常量指针的需求,这通常(对于小字符串)会让编译器将加密字符串内联,在一系列汇编操作中运行时构建它,从而保护二进制图像免受简单的 XOR 解密攻击。运行时将解密加密的字符串,以便在程序中使用。

  • 编译时保证混淆 - 字符串通过 constexpr 表达式进行编译。 * 全局生命周期(每个线程) - 混淆后的字符串存储在一个唯一的 lambda 中的线程局部变量中。 * 可隐式转换为 char* - 易于集成到现有代码库中。 * 随机 64 位密钥 - 每次都使用随机密钥进行混淆。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++cpp14cpp17embedded-string-literalsheader-only

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言