[发明专利]基于Mono的Unity插件加密方法、存储介质在审
申请号: | 201910649077.4 | 申请日: | 2019-07-18 |
公开(公告)号: | CN110472425A | 公开(公告)日: | 2019-11-19 |
发明(设计)人: | 刘德建;官泉;陈宏展 | 申请(专利权)人: | 福建天晴在线互动科技有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/12 |
代理公司: | 35214 福州市博深专利事务所(普通合伙) | 代理人: | 张明<国际申请>=<国际公布>=<进入国 |
地址: | 350001 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 插件 加密 编译 编辑器 常量 字符串数据 存储介质 加密效率 检查文件 解密函数 逆向工程 文件替换 指令数据 自动还原 对插件 屏蔽 加载 源码 调用 载入 共享 安全 | ||
1.一种基于Mono的Unity插件加密方法,其特征在于,包括:
对插件Dll文件的指令数据块和常量字符串数据块进行加密;
在Mono文件中的载入插件Dll文件函数内增加对所述加密的解密函数的调用,得到编译后的Mono文件;对所述编译后的Mono文件进行加壳;
将Unity编辑器中的Mono文件替换为加壳后的编译后的Mono文件,且屏蔽Unity编辑器的检查文件。
2.如权利要求1所述的一种基于Mono的Unity插件加密方法,其特征在于,所述对插件Dll文件的指令数据块和常量字符串数据块进行加密,具体为:
获取插件Dll文件中的.Net目录结构体的结束地址,将其作为指令数据块的起始位置;
获取插件Dll文件中的MetaData数据块的起始地址,将其作为指令数据块的结束位置;
加密所述指令数据块的起始位置至所述指令数据块的结束位置之间的数据内容;
获取插件Dll文件中常量字符串数据块的位置和数据块长度;
依据所述位置和数据块长度对所述常量字符串数据块进行加密;
在插件Dll文件中置入加密标识。
3.如权利要求2所述的一种基于Mono的Unity插件加密方法,其特征在于,所述在Mono文件中的载入插件Dll文件函数内增加对所述加密的解密函数的调用,具体为:
在Mono文件中增加对载入的插件Dll文件是否存在所述加密标识的判断函数;
在Mono文件中增加对应指令数据块的第一解密函数,所述第一解密函数包括指令数据块的起始位置和结束位置的获取,以及对应加密后指令数据块的解密函数;
在Mono文件中增加对应常量字符串数据块的第二解密函数,所述第二解密函数包括常量字符串数据块的位置和数据块长度的获取,以及对应加密后常量字符串数据块的解密函数;
设置在Mono载入插件Dll文件函数时调用所述判断函数,若判断结果为是,则调用所述第一解密函数和第二解密函数。
4.如权利要求1所述的一种基于Mono的Unity插件加密方法,其特征在于,所述将Unity编辑器中的原始Mono文件替换为加壳后的编译后的Mono文件,具体为:
通过补丁应用将Unity编辑器中EmbedRuntime目录里的Mono文件以及支持MonoBleedingEdge的mono-2.0-bdwgc.dll文件和mono-2.0-sgen.dll文件替换为所述加壳后生成的Mono文件以及支持MonoBleedingEdge的mono-2.0-bdwgc.dll文件和mono-2.0-sgen.dll文件。
5.如权利要求1所述的一种基于Mono的Unity插件加密方法,其特征在于,所述屏蔽Unity编辑器的检查文件,具体为:
对Unity编辑器中的组件更新检查文件进行删除或者重命名文件名。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-5任意一项所述的一种基于Mono的Unity插件加密方法所包含的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴在线互动科技有限公司,未经福建天晴在线互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910649077.4/1.html,转载请声明来源钻瓜专利网。