一种指令重组方法和装置制造方法及图纸

技术编号:15823020 阅读:67 留言:0更新日期:2017-07-15 05:07
本发明专利技术公开了一种指令重组方法和装置。指令重组方法包括:从初始指令中提取至少一条有效指令;对有效指令进行等效变形得到第一等效指令;将第一等效指令替换所述的有效指令得到第一重组指令;向所述第一重组指令中添加至少一条花指令得到第二重组指令。本发明专利技术解决传统方法生成的花指令没有对程序起到较好的保护作用的问题,进而生成比较复杂的指令片段,在不影响程序正常运行效率的前提下增加了破解难度,对程序起到更好的保护作用。

【技术实现步骤摘要】
一种指令重组方法和装置
本专利技术实施例涉及信息安全领域,尤其涉及一种指令重组方法和装置。
技术介绍
花指令是对抗反汇编的有效手段之一,正常代码添加了花指令之后,可以破坏静态反汇编的过程,使反汇编的结果出现错误。错误的反汇编结果会造成破解者的分析工作大量增加,进而使之不能理解程序的结构和算法,也就很难破解程序,从而达到病毒或软件保护的目的。传统的花指令生成过程中,设计者首先会找到某段汇编空闲的寄存器,并那个对该寄存器添加花指令。破解者在对花指令的破解过程中,仅需该寄存器中的花指令抹去,即可轻松完成破解程序的任务,破解难度低下。传统方法生成的花指令都是由一些无效指令构成,与程序中的上下文没有关联,因此直接抹去也不会影响到程序的正常运行,没有对程序起到较好的保护作用。
技术实现思路
本专利技术提供一种指令重组方法和装置,以解决传统方法生成的花指令没有对程序起到较好的保护作用的问题。第一方面,本专利技术实施例提供了一种指令重组方法,包括:从初始指令中提取至少一条有效指令;对所述有效指令进行等效变形得到第一等效指令;将所述第一等效指令替换所述有效指令得到第一重组指令;向所述第一重组指令中添加至少一条花指令得到第二重组指令。进一步的,所述向所述第一重组指令中添加至少一条花指令得到第二重组指令之后,还包括:从所述第二重组指令中提取一条指令作为待处理指令;对所述待处理指令进行等效变换得到第二等效指令;将所述第二等效指令替换所述第二重组指令中提取的有效指令得到第三重组指令。进一步的,所述向所述第一重组指令中添加至少一条花指令得到第二重组指令,包括:将所述花指令拆分为至少两个花指令片段;确定所述第一重组指令中的指令数量,根据所述指令数量确定所述花指令片段的添加位置;根据所述添加位置将所述花指令片段添加到所述第一重组指令中得到第二重组指令。进一步的,所述等效变形操作包括指令交换操作、取地址操作、取反操作和指令压缩操作。第二方面,本专利技术实施例还提供了一种指令重组装置,该装置包括:有效指令提取模块,用于从初始指令中提取至少一条有效指令;等效变形模块,对所述有效指令进行等效变形得到第一等效指令;指令替换模块,用于将所述第一等效指令替换所述有效指令得到第一重组指令;花指令添加模块,用于向所述第一重组指令中添加至少一条花指令得到第二重组指令。进一步的,指令重组装置还包括:指令二次提取模块,用于从所述第二重组指令中提取一条指令作为待处理指令;二次等效变换模块,用于对所述待处理指令中提取的有效指令进行等效变换得到第二等效指令;二次替换模块,用于将所述第二等效指令替换所述第二重组指令中提取的有效指令得到第三重组指令。进一步的,花指令添加模块包括:花指令拆分单元,用于将所述花指令拆分为至少两个花指令片段;指令添加位置确定单元,用于确定所述第一重组指令中的指令数量,根据所述指令数量确定所述花指令片段的添加位置;指令添加单元,用于根据所述添加位置将所述花指令片段添加到所述第一重组指令中得到第二重组指令。进一步的,所述等效变形操作包括指令交换操作、取地址操作、取反操作和指令压缩操作。本专利技术实施例通过对软件程序中的有效指令进行等效变形操作,并添加花指令进而完成指令重组操作,以解决传统方法因容易被抹去而造成没有对程序起到较好的保护作用的问题,进而生成比较复杂的指令片段,在不影响程序正常运行效率的前提下增加了破解难度,对程序起到更好的保护作用。附图说明图1是本专利技术实施例一中的一种指令重组方法流程图;图2是本专利技术实施例二中的一种指令重组方法流程图;图3是本专利技术实施例三中的一种指令重组方法的优选实施方式的流程图;图4是本专利技术实施例四中的一种指令重组装置结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一中的一种指令重组方法流程图,本实施例可适用于花指令自动生成的情况,该方法可以由一种指令重组装置来执行,该装置可以由软件和/或硬件的方式来实现。现有技术中计算设备的系统包括:用户界面层、应用层、操作系统内核层、硬件映射层、和硬件层。其中,用户界面层是用户与设备之间的接口,用户通过该层与设备(即设备的其他层次,例如应用层进行交互。应用层指应用软件层。操作系统内核层是一种基于软件的逻辑层,一般来讲是由软件数据和软件代码组成,相比于界面层和应用层,操作系统内核层的代码拥有更高的权限,可以对计算机系统中的各种软硬件资源进行完整的操作。硬件映射层是一种基于软件的逻辑层,它一般工作在操作系统内核层,拥有与内核层相同的权限。硬件映射层主要是为了解决将不同类型的硬件的操作模式映射为一种统一的上层接口,向上屏蔽硬件的特殊性。一般来说,硬件映射层主要被操作系统内核层使用,来完成对各种硬件的操作。硬件层是指构成计算机系统的所有硬件部件。本实施例描述的方法可用于保护上述计算设备的数据安全,运用于硬件映射层与硬件层间的信息交互,如图1所示,该方法包括:S110、从初始指令中提取至少一条有效指令。其中,初始指令为运行程序中的指令流,可以包括多条指令,有效指令可以是初始指令中的任意一条指令,有效指令用于等效变换生成等效指令片段,进而对抗破解者对软件程序的反汇编操作。本方法可以由MIPS处理器或基于ARM架构的处理器上执行。所述方法可以是运行软件程序过程中调度每一条有效指令前,对每一条有效指令执行获取和后续操作。S120、对所述有效指令进行等效变形得到第一等效指令。其中,所述等效变形操作用于对有效指令。经过变换后得到的第一有效指令的运行结果效指令的运行结果相同。进一步的,第一有效指令中的数量越多,对软件程序的保护度越强,但是成花指令的数量增加也会导致软件程序的运行数据量增大,运行效率减弱,因此,有效指令的获取数量应根据软件程序的保护程度和运行效率综合考虑。具体的,等效变形操作包括指令交换操作、取地址操作、取反操作和指令压缩操作等。指令交换操作用于有效指令中全部字节或者半字节的交换。取地址操作用于获取有效指令的存储地址。取反操作用于对有效指令所对应二进制数的取反运算。示例性的,当有效指令为:pushebp,表示将ebp压入栈堆空间。经过指令等效变换操作后得到的第一有效指令为:xchgreg_x1,ebpleaesp,[esp-4]mov[esp],reg_x1S130、将所述第一等效指令替换所述有效指令得到第一重组指令。第一等效指令获取完成后,可以使用第一等效指令对初始指令中的有效指令进行替换,进而与初始指令中除有效指令外的其他指令组合形成第一重组指令。S140、向所述第一重组指令中添加至少一条花指令得到第二重组指令。花指令由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。本实施例中,花指令的数量可以是一条,也可以是多条。相应的,花指令的数量越多,对软件程序的保护度越强,但是成花指令的数量增加也会导致软件程序的运行数据量增大,运行效率减弱,因此,有效指令的获取数量应根据软件程序的保护程度和运行效率综合考虑。第二重组指令即本方法得到的结果,其运行结果与初本文档来自技高网...
一种指令重组方法和装置

【技术保护点】
一种指令重组方法,其特征在于,包括:从初始指令中提取至少一条有效指令;对所述有效指令进行等效变形得到第一等效指令;将所述第一等效指令替换所述有效指令得到第一重组指令;向所述第一重组指令中添加至少一条花指令得到第二重组指令。

【技术特征摘要】
1.一种指令重组方法,其特征在于,包括:从初始指令中提取至少一条有效指令;对所述有效指令进行等效变形得到第一等效指令;将所述第一等效指令替换所述有效指令得到第一重组指令;向所述第一重组指令中添加至少一条花指令得到第二重组指令。2.根据权利要求1所述的指令重组方法,其特征在于,所述向所述第一重组指令中添加至少一条花指令得到第二重组指令之后,还包括:从所述第二重组指令中提取一条指令作为待处理指令;对所述待处理指令进行等效变换得到第二等效指令;将所述第二等效指令替换所述第二重组指令中提取的有效指令得到第三重组指令。3.根据权利要求1所述的指令重组方法,其特征在于,所述向所述第一重组指令中添加至少一条花指令得到第二重组指令,包括:将所述花指令拆分为至少两个花指令片段;确定所述第一重组指令中的指令数量,根据所述指令数量确定所述花指令片段的添加位置;根据所述添加位置将所述花指令片段添加到所述第一重组指令中得到第二重组指令。4.根据权利要求1所述的指令重组方法,其特征在于:所述等效变形操作包括指令交换操作、取地址操作、取反操作和指令压缩操作。5.一种指令重组装置,其特征在于,包括:有效指令提取模块,用于...

【专利技术属性】
技术研发人员:孙吉平
申请(专利权)人:北京深思数盾科技股份有限公司
类型:发明
国别省市:北京,11

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

1