2401C++,C++编译时自动加密

这篇具有很好参考价值的文章主要介绍了2401C++,C++编译时自动加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编译时加密串

编译时加密串,运行时动态解密.此自定义加密算法可增加破解的难度,因为攻击者不仅需要逆向工程代码,还需要理解加密算法.
这样对代码的改动小,不影响代码可读性.
下面是使用boost.hana编译时加密串的示例:

#include <string>
#include <iostream>
#include <boost/hana/string.hpp>
#include <boost/hana/tuple.hpp>
#include <boost/hana/transform.hpp>
namespace hana = boost::hana;
inline constexpr char EncryptChar(char ch) {
    return ch == 'z'   ch : ch ^ 'z';
}
template <typename HANA_STR>
constexpr auto EncryptString(HANA_STR hana_str) {
    constexpr auto hana_tuple = hana::to_tuple(hana_str);
    constexpr auto encrypted_tuple = hana::transform(hana_tuple, [](auto x) {
        constexpr char ch = hana::value(x);
        return hana::integral_c<char, EncryptChar(ch)>;
    });
    constexpr auto encrypted_str = hana::unpack(encrypted_tuple, hana::make<hana::string_tag>);
    return encrypted_str.c_str();
}
std::string DecryptString(std::string encryped_str) {
    for (char& ch : encryped_str)
        if(ch != 'z')
            ch ^= 'z';
    return std::move(encryped_str);
}
#define ENCRYPT_STR(str) DecryptString(EncryptString(BOOST_HANA_STRING(str)))
int main() {
    std::cout << ENCRYPT_STR("你好") << ",世界!" << std::endl;
    std::cout << ENCRYPT_STR("hello") << ", world!" << std::endl;
    return 0;
}

开发环境:Windows11,VS202217.8.4,Boost1.84,C++17,C++20
用记事本打开编译后的exe,无法搜索到"你好",“hello”,可搜索到没有加密的",世界!"和",world!".
输出:文章来源地址https://www.toymoban.com/news/detail-813249.html

你好,世界!
hello, world!

到了这里,关于2401C++,C++编译时自动加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 5.llama.cpp编译及使用

    llama.cpp ggml 向量库 cmake 编译:版本稍高一些,我的是3.22 支持cuda 最后在build/bin目录下生成 meta官网下载,贼麻烦 huggingface下载 Linly: 国内Linly开源 模型量化的python代码在llama.cpp下面找到。在硬件资源有限的情况下才对模型进行量化。 在build/bin找到quantize 模型下载 模型转换

    2024年04月28日
    浏览(26)
  • cpp文件编译过程 makefile cmake

    直接 gcc 没有-o 的话出来的输出exe文件没有调试信息,相比-o的大小会小一点,只有包含了调试信息文件才可以执行 头文件在编译器的include目录中,编译时 -I 指定库 函数库默认路径在编译器的lib目录中,编译时 -L指定目录,-l 小写L 指定库 函数或者是在别的c与cpp文件中 静态

    2024年02月08日
    浏览(37)
  • whisper.cpp在Windows VS的编译

    Whisper是OpenAI开源的一款语音识别的模型,包含有英语和多国语言的模型,根据实际情况来看,其支持的90多种语言的准确率着实表现惊艳,英文甚至可以做到3%左右的误词率,官方图表显示中文的误词率大约是14%,但是实际使用的情况来看,误词率也是相当低,几乎也在3%左右

    2024年02月07日
    浏览(41)
  • 【c/c++】c和cpp混合编译

    在这段代码中,#ifdef __cplusplus 和 #endif 之间的代码是为了在 C++ 中使用 C 语言的函数声明和定义时,确保编译器正确地处理 C 和 C++ 之间的语法差异。这是因为 C 和 C++ 有一些不同之处,包括函数名的重载、类型转换等。 在这段代码中,extern “C” 是一个 C++ 的特性,它告诉编

    2024年02月10日
    浏览(31)
  • vscode使用g++编译.c文件或.cpp文件

        vscode是一个跨平台、轻量级、插件非常丰厚的IDE,这里介绍在vscode里使用g++来编译.cpp文件。g++也叫GCC, 在Window中,是使用MinGW方式实现g++的,它分为32位和64位2个版本,其中,MinGW-64是64位的,MinGW-32是32位的。 1.1 下载g++ 8.1     下载GCC 64位 编译器,比如MinGW-W64 GCC-8.1,

    2024年02月07日
    浏览(41)
  • 【ARM 嵌入式 编译系列 2.2 -- GCC 编译参数学习 assembler-with-cpp 使用介绍】

    请阅读 【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】 在 rt-thread 的编译脚本中经常会看到下面编译参数: arm-none-eabi-gcc 是针对 ARM 架构的交叉编译器,用于编译嵌入式 ARM 应用程序。在 GCC 中, -x 选项用于指定要编译的输入文件的语言。当与 assembler-with-cpp 一起使用时,

    2024年01月23日
    浏览(45)
  • CMakeLists.txt编写简单介绍:CMakeLists.txt同时编译.cpp和.cu

    不想付费的同学可以参考本人知乎添加链接描述,关于CMakeLists.txt的相关介绍,这里不赘诉,本人的出发点是借助于CMakeLists.txt掌握基本的C++构建项目流程,下面是本人根据网络资料以及个人实践掌握的资料。 下图是一个使用CUDA实现hello world的项目,一般来说,一个标准的C

    2024年04月10日
    浏览(38)
  • 解决Unity安卓编译错误: IL2CPP需要的资源提取失败

    解决Unity安卓编译错误: IL2CPP需要的资源提取失败 在开发Unity游戏时,我们经常会遇到各种各样的问题。其中一个常见的问题是,当我们尝试将游戏导出为Android应用程序时,可能会遇到一个名为\\\"Failed to extract resources needed by IL2CPP\\\"的错误。本文将介绍如何解决这个问题,并提供

    2024年02月03日
    浏览(48)
  • 反编译Unity IL2CPP APK:深入探索逆向工程技术

    反编译Unity IL2CPP APK:深入探索逆向工程技术 在移动应用开发领域中,Unity引擎被广泛使用以创建令人惊叹的游戏和应用程序。然而,有时候我们可能需要研究某些应用程序的内部机制或者了解其实现细节。本文将介绍如何反编译基于Unity引擎的IL2CPP APK,并提供相应的源代码和

    2024年02月06日
    浏览(45)
  • 【开源技术随笔】005 - Android编译报错:check_vintf.cpp For kernel requirements at matrix level 6

    未订阅的兄弟,不建议订阅专栏了 已订阅的兄弟,请关注下本文末尾,加 联系方式 进行技术交流 最近添加 NFS 的 Kernel 宏控,单编 bootimage 没问题,下载验证 NFS 功能也开启OK,但整编Android 时就报错如下: [check_vintf.cpp:620] For kernel requirements at matrix level 6, For config CONFIG_NFS_F

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包