[发明专利]生成指令集编码的方法、装置和系统有效
申请号: | 201611075913.5 | 申请日: | 2016-11-28 |
公开(公告)号: | CN108121565B | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 高磊;万圆春 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 生成 指令 编码 方法 装置 系统 | ||
1.一种生成指令集编码的方法,其特征在于,包括:
获取指令集和随机数参数,其中,所述随机数参数为动态变化的数据;
基于所述随机数参数对所述指令集中的指令进行编码,获取所述指令的指令编码,其中,所述指令编码包括:用于表征所述指令的操作码的第一参数信息,以及用于表征所述指令的操作数的第二参数信息;
其中,所述随机数参数用于确定所述指令编码过程中所述操作码和所述操作数分别在所述指令编码中的分布;
其中,基于所述随机数参数对所述指令集中的指令进行编码,获取所述指令的指令编码,包括:基于所述随机数参数,将所述指令集中的指令进行二叉树处理,生成包含了n个叶子节点的二叉树;将所述指令集中的指令分别随机存储至所述二叉树的叶子节点上,并随机确定每个非叶子节点的比特位,得到编码后的所述指令编码,其中,所述每个非叶子节点与子节点之间的权重值也是随机生成的。
2.根据权利要求1所述的方法,其特征在于,
所述第一参数信息至少包括:所述操作码的比特位的位数、每个比特位的位置标识和每个比特位的组成顺序;
所述第二参数信息至少包括:所述操作数的比特位的位数、每个比特位的位置标识和每个比特位的组成顺序。
3.根据权利要求1所述的方法,其特征在于,所述操作码的比特位的位数小于等于预定长度,其中,所述预定长度为所述指令的长度减去所述操作数的长度值。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,在获取所述指令的指令编码之后,所述方法还包括:
根据所述指令的指令编码,生成保护文件,其中,所述保护文件至少包括如下对象的代码和配置文件:指令集文档、汇编器、反汇编器、链接器、解码器、翻译器。
5.根据权利要求4所述的方法,其特征在于,在根据所述指令的指令编码,生成保护文件之后,所述方法还包括:
接收逻辑代码;
采用编译器对所述逻辑代码进行编译,生成编译代码,其中,所述编译器至少包括:所述保护文件中的所述汇编器和所述链接器。
6.根据权利要求5所述的方法,其特征在于,在采用编译器对所述逻辑代码进行编译,生成编译代码之后,所述方法还包括:
将所述编译代码载入对应的应用程序,其中,不同的应用程序载入不同的编译代码。
7.根据权利要求4所述的方法,其特征在于,在根据所述指令的指令编码,生成保护文件之后,所述方法还包括:
接收所述指令集;
采用所述翻译器对所述指令集进行翻译,生成翻译文件,其中,所述翻译器为所述保护文件中的所述翻译器;
其中,所述指令集包括:逻辑代码、编译器编译得到的编译代码、汇编语言或二进制文件。
8.一种生成指令集编码的装置,其特征在于,包括:
第一获取模块,用于获取指令集和随机数参数,其中,所述随机数参数为动态变化的数据;
第一编码模块,用于基于所述随机数参数对所述指令集中的指令进行编码,获取所述指令的指令编码,其中,所述指令编码包括:用于表征所述指令的操作码的第一参数信息,以及用于表征所述指令的操作数的第二参数信息;
其中,所述随机数参数用于确定所述指令编码过程中所述操作码和所述操作数分别在所述指令编码中的分布;
其中,所述第一编码模块包括:二叉树生成模块,用于基于所述随机数参数,将所述指令集中的指令进行二叉树处理,生成包含了n个叶子节点的二叉树;代码生成模块,用于将所述指令集中的指令分别随机存储至所述二叉树的叶子节点上,并随机确定每个非叶子节点的比特位,得到编码后的所述指令编码,其中,所述每个非叶子节点与子节点之间的权重值也是随机生成的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611075913.5/1.html,转载请声明来源钻瓜专利网。