抵御反汇编的花指令混淆信息安全控制方法、系统及装置制造方法及图纸

技术编号:26689954 阅读:12 留言:0更新日期:2020-12-12 02:39
本发明专利技术公开了一种抵御反汇编的花指令混淆信息安全控制方法及系统,首先,在ARM汇编代码中插入寄存器间接寻址的跳转花指令序列,构造分支信息并通过间接寻址隐藏分支信息;其次,设置计算花指令序列对寄存器间接寻址计算复杂化进一步隐藏分支信息;最后,利用元数据添加不可执行的垃圾花指令序列,抵御线性扫描反汇编的延迟重同步机制。该发明专利技术构建的用于隐藏待保护指令的花指令除了可以迷惑反汇编器的递归扫描之外,通过结合跳转花指令和垃圾花指令还可以抵御反汇编器的线性扫描和攻击者的动态跟踪调试。

【技术实现步骤摘要】
抵御反汇编的花指令混淆信息安全控制方法、系统及装置
本专利技术涉及信息安全、软件保护、软件领域,尤其涉及一种抵御反汇编的花指令混淆信息安全控制方法及系统。
技术介绍
随着嵌入式技术的发展,ARM处理器因其体积小、功耗低和性能高等特点很快占领了移动通信市场,如安卓智能手机和平板等移动设备,大都采用ARM处理器。于此同时,针对ARM处理器的程序攻击日益突出,如ARM指令反汇编、控制流分析和动态调试等。因此,如何保护基于ARM处理器的程序安全,成为软件保护研究的热点。目前,针对底层机器码到汇编指令的反汇编恶意分析主要进行指令混淆保护,常用混淆技术有等价指令替换,指令乱序和指令重叠等。但是这些指令混淆算法是针对变长指令的X86架构,并不适用于定长指令的ARM架构。此外,目前针对跳转花指令混淆的大部分研究仍停留在JMP和BF直接跳转阶段,其采用直接寻址方式,且跳转地址固定,容易被识别,无法对抗递归扫描反汇编。为了解决以上技术缺陷,本专利技术在保持程序语义不变的情况下,充分利用跳转指令的相对寻址,不但实现判断、循环和子程序调用等控制流,还可以提供程序控制流变换和处理器状态切换,对提升ARM架构程序安全性有很大作用。因此,在对ARM指令集中的跳转指令进行分析的同时,结合多核ARM体系结构特征,提出基于寄存器间接寻址跳转的ARM汇编花指令混淆算法,包括等价变形计算花指令和不可执行的垃圾花指令等混淆构造方法,使得应用程序中重要算法指令的安全性在ARM架构上有显著的提升。
技术实现思路
1、本专利技术的目的<br>本专利技术所要解决的技术问题是在ARM架构上抵御恶意反汇编和逆向攻击。本专利技术的目的是抵御ARM反汇编。2、本专利技术所采用的技术方案本专利技术公开了一种抵御反汇编的花指令混淆信息安全控制方法,包括如下步骤:首先,在ARM汇编代码中插入寄存器间接寻址的跳转花指令序列,构造分支信息并通过间接寻址隐藏分支信息;其次,设置计算花指令序列对寄存器间接寻址计算复杂化进一步隐藏分支信息;最后,利用元数据添加不可执行的垃圾花指令序列,抵御线性扫描反汇编的延迟重同步机制。优选的,按照如下步骤进行:步骤1、通过跳转花指令序列构造分支信息;步骤2、利用寄存器间接寻址隐藏分支信息;步骤3、使寄存器间接寻址复杂化;所述的分支路径移动目标位是寄存器的间接选址地址,其赋值通过计算花指令序列计算产生;通过随机插入不可执行的垃圾花指令序列构建另一条分支路径。优选的,对不可执行的垃圾花指令的地址入口构造反汇编的花指令序列,从而将反汇编的花指令序列与其后的代码结合在一起。优选的,所述的步骤1中分支指令作为保护的目标指令具体为:步骤101、根据保护的目标指令,选定一个分割位置;步骤102、设定分割位置后的指令序列为待移动指令序列即分支指令序列;优选的,所述的步骤2中利用寄存器间接寻址隐藏分支信息具体为:选定一处可用的寄存器作为间接跳转寻址的寄存器。优选的,所述的步骤3中使寄存器间接寻址复杂化,具体为:步骤301、通过ADR指令给寄存器赋值;步骤302、设定ADR指令之后的位置为当前位置。步骤303、预留计算花指令序列和垃圾花指令序列位置;步骤304、标记新的跳转位置,即新的跳转位置为当前位置和寄存器、跳转花指令序列、垃圾花指令序列的长度相加;跳转花指令序列、垃圾花指令序列的长度为动态值,即跳转花指令序列相对位置不固定。步骤305、移动指令序列至新的跳转位置;步骤306、选取一个或多个当前可用的寄存器,基于间接化构造计算花指令序列,满足寄存器的值为新的跳转位置,并将计算花指令序列插入到寄存器之后;步骤307、在计算花指令序列之后添加寄存器寻址间接跳转指令。步骤308、根据元数据随机构造不可执行的垃圾花指令序列,并在跳转指令之后添加垃圾花指令序列。本专利技术提出了一种抵御反汇编的花指令混淆系统,存储有权利要求1-7任一所述的程序,被处理器执行时实现上述方法。本专利技术提出了一种抵御反汇编的花指令混淆装置,包括:存储器;一个或多个处理器,以及一个或多个程序,存储在存储器中,并被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现所述的权利要求1-7任一所述的花指令混淆信息安全控制方法。3、本专利技术所采用的有益效果该专利技术构建的用于隐藏待保护指令的花指令除了可以迷惑反汇编器的递归扫描之外,通过结合跳转花指令和垃圾花指令还可以抵御反汇编器的线性扫描和攻击者的动态跟踪调试。附图说明图1为本专利技术的指令序列和现有技术对比图。图2为本专利技术的流程图。图3为本专利技术的实施例的流程图。图4为本专利技术更进一步的实施例的流程图。图5为本专利技术的设定分支流程图。图6为本专利技术的寄存器的间接选址及添加垃圾花指令流程图。具体实施方式下面结合本专利技术实例中的附图,对本专利技术实例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域技术人员在没有做创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。下面将结合附图对本专利技术实例作进一步地详细描述。实施例1如图1-2所示,本专利技术提出了一种抵御反汇编的花指令混淆信息安全控制方法,具体为:首先,在ARM汇编代码中插入寄存器间接寻址的跳转花指令序列,构造分支信息并隐藏;其次,在跳转花指令序列后面构建垃圾花指令序列;最后,通过跳转花指令序列对间接寻址寄存器进行混淆,具体为:预留计算花指令序列、跳转花指令序列和垃圾花指令序列位置;标记新的跳转位置由设定的位置、间接寄存器位置、花指令序列和垃圾花指令序列位置综合得到,花指令序列和垃圾花指令序列为动态值,跳转指令序列相对位置也为动态值。如图3,步骤1、通过跳转花指令构造分支信息;步骤2、通过移动指令序列构建一条分支路径;由于Rx的值是通过计算花指令序列M计算产生,反汇编器在进行反汇编时无法确定寄存器Rx的值,因此无法识别分支路径S的入口信息,引起递归扫描反汇编出错。步骤3、分支路径移动目标位是寄存器的间接选址,其赋值通过花指令序列计算产生;通过随机插入不可执行的垃圾花指令序列构建另一条分支路径。由于不可执行的垃圾花指令N处的地址是合法的目的地址,而且添加的BXRx是合法的跳转指令,所以反汇编器对不可执行的垃圾花指令的地址入口构造反汇编的花指令序列,从而将反汇编的花指令序列与其后的代码结合在一起,使线性扫描反汇编结果出错。实施例2如图4,步骤1、通过BX跳转指令(ARM指令系统中的跳转花指令)构造分支信息,使程序的控制流复杂化;步骤2、利用Rx寄存器间接寻址隐藏分支信息,并导致在递归扫描反汇编中遗漏可达本文档来自技高网...

【技术保护点】
1.一种抵御反汇编的花指令混淆信息安全控制方法,其特征在于:/n首先,在ARM汇编代码中插入寄存器间接寻址的跳转花指令序列,构造分支信息并通过间接寻址隐藏分支信息;/n其次,设置计算花指令序列对寄存器间接寻址计算复杂化进一步隐藏分支信息;/n最后,利用元数据添加不可执行的垃圾花指令序列,抵御线性扫描反汇编的延迟重同步机制。/n

【技术特征摘要】
1.一种抵御反汇编的花指令混淆信息安全控制方法,其特征在于:
首先,在ARM汇编代码中插入寄存器间接寻址的跳转花指令序列,构造分支信息并通过间接寻址隐藏分支信息;
其次,设置计算花指令序列对寄存器间接寻址计算复杂化进一步隐藏分支信息;
最后,利用元数据添加不可执行的垃圾花指令序列,抵御线性扫描反汇编的延迟重同步机制。


2.根据权利要求1所述的抵御反汇编的花指令混淆信息安全控制方法,其特征在于:
步骤1、通过跳转花指令序列构造分支信息;
步骤2、利用寄存器间接寻址隐藏分支信息;
步骤3、使寄存器间接寻址复杂化;
所述的分支路径移动目标位是寄存器的间接选址地址,其赋值通过计算花指令序列计算产生;通过随机插入不可执行的垃圾花指令序列构建另一条分支路径。


3.根据权利要求2所述的抵御反汇编的花指令混淆信息安全控制方法,其特征在于:对不可执行的垃圾花指令的地址入口构造反汇编的花指令序列,从而将反汇编的花指令序列与其后的代码结合在一起。


4.根据权利要求2所述的抵御反汇编的花指令混淆信息安全控制方法,其特征在于,所述的步骤1中分支指令作为保护的目标指令具体为:
步骤101、根据保护的目标指令,选定一个分割位置;
步骤102、设定分割位置后的指令序列为待移动指令序列即分支指令序列。


5.根据权利要求2所述的抵御反汇编的花指令混淆信息安全控制方法,其特征在于:所述的步骤2中利用寄存器间接寻址隐藏分支信息具...

【专利技术属性】
技术研发人员:乐德广
申请(专利权)人:常熟理工学院
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1