加密就不用说了,看上一篇2.X加密的方式,怎么弄都可以。的保证解密规则就行;
现在重点说3.X解密:
在新的3.X引擎中官方整合了大部分获取资源的方法,最终合成一个getdata;
可以从源码,和堆栈调用中看到:
CCFileUtils.cpp:
Data FileUtils::getDataFromFile(const std::string& filename) { return getData(filename, false); }
getDataFromFile目前只调用getData(filename,false);
Data getData(const std::string& filename, bool forString)
这个函数是一个非类成员静态函数。
forString是用来标识是否是一个文本文件,如果是那么buffer需要多一个字节。
这个其实不重要,因为我们处理的最终buffer是获取完全的
所以直接改代码:
static Data getData(const std::string& filename, bool forString) { if (filename.empty()) { return Data::Null; } Data ret; unsigned char* buffer = nullptr; size_t size = 0; size_t readsize; const char* mode = nullptr; if (forString) mode = "rt"; else mode = "rb"; std::string lastname = FileUtils::getInstance()->fullPathForFilename(filename); lastname = lastname.substr(lastname.length()-5,lastname.length()); do { // Read the file from hardware std::string fullPath = FileUtils::getInstance()->fullPathForFilename(filename); FILE *fp = fopen(fullPath.c_str(), mode); CC_BREAK_IF(!fp); fseek(fp,0,SEEK_END); size = ftell(fp); fseek(fp,0,SEEK_SET); if (forString) { buffer = (unsigned char*)malloc(sizeof(unsigned char) * (size + 1)); buffer[size] = '