最近有好几个朋友在问我quick脚本和资源加密的相关问题,看来很多人还是有不解的地方,现在就详细介绍一下,免得各位折腾许久。
1. 对资源和脚本加密的操作,本文就不介绍,直接运行几个命令行就搞定,具体可以参考官方的教程。
2. 对脚本的解密也很简单,直接在按照官方说的设置的key和签名即可,不用再修改任何代码。
3. 资源解密,这个修改的地方有点多。首先导入头文件搜索路径,$(SRCROOT)/../../runtime-src/Classes/quick-src
3.1 单个图片的解密,修改CCImage.cpp文件,
3.1.1 导入头文件,#include "extra/apptools/HelperFunc.h"
3.1.2 找到函数 bool Image::initWithImageFile(const std::string& path)
修改Data data = FileUtils::getInstance()->getDataFromFile(_filePath); 为Data data = HelperFunc::getData(_filePath);
此时就完成了单个图片的解密过程。
3.2 csb文件解密,修改CSLoader.cpp文件,
3.2.1 导入头文件,#include "extra/apptools/HelperFunc.h"
3.2.2 找到函数Node* CSLoader::nodeWithFlatBuffersFile(const std::string &fileName)
修改Data buf = FileUtils::getInstance()->getDataFromFile(fullPath);为Data buf = HelperFunc::getData(fullPath);
此时就完成了对csb文件的解密过程。
3.3 plist文件解密,修改CCFileUtils-apple.mm
特别注意,本文是针对xcode修改的,Android修改原理差不多
3.3.1 导入头文件,#include "extra/apptools/HelperFunc.h"
3.3.2 找到函数 ValueMap FileUtilsApple::getValueMapFromFile(const std::string& filename)
替换NSDictionary* dict = [NSDictionary dictionaryWithContentsOfFile:path];为以下代码
Data buf = HelperFunc::getData(filename);
NSData *data = [[[NSData alloc] initWithBytes:buf.getBytes() length:buf.getSize()] autorelease];
NSPropertyListFormat format;
NSString *error;
NSMutableDictionary *dict = (NSMutableDictionary *)[
NSPropertyListSerialization propertyListFromData:data
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format
errorDescription:&error];
此时就完成对plist文件的解密过程。 原文链接:https://www.f2er.com/cocos2dx/338921.html