【技术实现步骤摘要】
一种混淆代码的方法、装置以及介质
[0001]本申请涉及代码混淆领域,特别是涉及一种混淆代码的方法、装置以及介质。
技术介绍
[0002]代码混淆亦称花指令,其目的是将计算机程序的代码,转换成一种在功能上等价,但是难于阅读和理解的形式。代码混淆可以应用于程序源代码,也可以应用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前的混淆代码均可通过扁平化技术放到一行,如ollvm中的应用。代码执行时,通过预先定义的单个算法得到执行中的代码块的下一块代码的标记值,可以直接定位到对应的代码块。
[0003]但是,该混淆代码中所有的代码块均在同一行中,并通过单个算法实现相互之间的联系,这种混淆代码结构简单,可直接获取到该行的所有代码块之后,再根据代码混淆技术所使用的单个算法得到各代码块的执行顺序,最终破解该混淆代码,可见此类混淆代码的安全性不高。
[0004]由此可见,如何提高混淆代码的安全性,是本领域技术人员亟待解决的问题。
技术实现思路
[0005]本申请的目的是提供一种混淆代码的方法 ...
【技术保护点】
【技术特征摘要】
1.一种混淆代码的方法,其特征在于,包括:读取待混淆的原始代码;其中,所述原始代码包括多个代码块;分析所述原始代码的逻辑顺序得到各所述代码块的有向图;根据所述有向图将各所述代码块放入预先设置的多维矩阵中得到代码块矩阵;其中,所述代码块矩阵中存在有在每一行上只包括所述代码块中的有效代码块的维度;所述有效代码块为执行算法在执行混淆代码时,在对应的行中需要执行的所述代码块;所述执行算法在执行所述混淆代码时,每次在所述代码块矩阵中选择其中一个位置上的所述代码块进行执行;编译所述代码块矩阵得到所述混淆代码。2.根据权利要求1所述的混淆代码的方法,其特征在于,所述根据所述有向图将各所述代码块放入预先设置的多维矩阵中得到代码块矩阵包括:通过BFS算法将各所述代码块放入预先设置的所述多维矩阵中得到所述代码块矩阵。3.根据权利要求2所述的混淆代码的方法,其特征在于,所述多维矩阵为二维矩阵;将所述有向图中的环和环下游的顶点对应的所述代码块放入所述二维矩阵包括:筛选出所述环和环下游的所述顶点对应的所述代码块;将所述环和环下游的所述顶点对应的所述代码块放入所述二维矩阵的其中一个所述维度的每一行上;所述筛选出所述环和环下游的所述顶点对应的所述代码块包括:判断所述有向图中是否存在入度为零的所述顶点;若是,则滤除入度为零的所述顶点对应的所述代码块;将入度为零的所述顶点的出发边的另一端的所述顶点的入度减一,并返回所述判断所述有向图中是否存在入度为零的所述顶点的步骤;若否,则将剩余的所述代码块作为所述环和环下游的所述顶点对应的所述代码块。4.根据权利要求1至3任意一项所述的混淆代码的方法,其特征在于,所述编译所述代码块矩阵得到所述混淆代码之前,还包括:向所述代码块矩阵中插入虚假代码块。5...
【专利技术属性】
技术研发人员:范益,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。