c – 如何编码.exe附带的外部文件

c – 如何编码.exe附带的外部文件,第1张

概述因此,我使用visual 2012制作了一个应用程序,它可以使用图像和着色器(纯文本).但实际上,我不希望人们打开图像和着色器并乱七八糟.如何将所有这些外部文件压缩为单个或多个文件,但仍可由可执行文件读取? 这个问题难以权威地回答,因为没有防篡改硬件,基本上不可能保护内容免受复杂的黑客攻击.但是,如果澄清一个简单的威慑力足够好,那么 embedding your content as resour 因此,我使用visual 2012制作了一个应用程序,它可以使用图像和着色器(纯文本).但实际上,我不希望人们打开图像和着色器并乱七八糟.如何将所有这些外部文件压缩为单个或多个文件,但仍可由可执行文件读取?解决方法 这个问题难以权威地回答,因为没有防篡改硬件,基本上不可能保护内容免受复杂的黑客攻击.但是,如果澄清一个简单的威慑力足够好,那么 embedding your content as resources in the executable怎么样呢?请注意,有一些工具可以从.exe文件中提取资源.

或者,您可以加密每个文件并在应用程序加载它时对其进行解密.加密可以像使用已知的常量字节对每个字节进行xor-ing一样简单,也可以使用像Microsoft CryptoAPI那样的真实加密算法.使用真实算法可以改善混淆,但仍然不会真正安全.

这是一个简单的程序,它使用this RC4 implementation(比CryptoAPI更容易使用)来加密或解密文件并将其写入stdout:

#include <algorithm>#include <iostream>#include <fstream>#include <iterator>#include <vector>// insert RC4 implementation hereint main(int argc,char *argv[]) {   const std::string password = "no more secrets";   const std::string filename = argv[1];   // Read file into a buffer.   std::ifstream f(filename.c_str(),std::ios::in | std::ios::binary);   std::vector<char> buffer;   f >> std::noskipws;   std::copy(      std::istream_iterator<char>(f),std::istream_iterator<char>(),std::back_inserter(buffer));   // Initialize the key from a password.   rc4_key key;   prepare_key((unsigned char *)password.data(),(int)password.size(),&key);   // Encrypt or decrypt (same operation).   rc4((unsigned char *)&buffer[0],(int)buffer.size(),&key);   // Write result to stdout.   std::cout.write(&buffer[0],buffer.size());   return 0;}

请注意,这不是使用RC4的安全方法,RC4算法本身不再被认为是安全的.

总结

以上是内存溢出为你收集整理的c – 如何编码.exe附带的外部文件全部内容,希望文章能够帮你解决c – 如何编码.exe附带的外部文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1257266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存