对可执行文件源代码保护的方法及装置制造方法及图纸

技术编号:6088647 阅读:263 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种对可执行文件源代码保护的方法,包括以下步骤:获取需要加壳的目标可执行链接格式ELF文件;提取目标ELF文件中的核心部分;所述核心部分包括数据段、代码段、对栈段及动态链接表;创建新的ELF文件框架;将目标文件的核心部分和加壳部分整合,为目标ELF文件的核心部分加密;将整合结果按ELF结构填入到新的ELF文件框架中;完成重构新的ELF文件并设置其属性为可执行。本发明专利技术还提供了一种对可执行文件源代码保护的装置,本发明专利技术所提供的方法或装置,可提高文件保护技术的反动态跟踪能力。

Method and device for protecting executable file source code

The present invention provides a method for executable source code protection, which comprises the following steps: obtaining the packing target executable link format ELF file; extracting core part of the target ELF file; the core part comprises a data segment, the code segment, the stack segment and dynamic link table; create a ELF file the new framework of the core and shell part; the integration of the target file, encryption is the core part of the target ELF file; will integrate the results according to the ELF structure into the ELF file in the new framework; complete the reconstruction of a new ELF file and set its properties as executable. The invention also provides a device for protecting the executable file source code, and the method or device provided by the invention can improve the anti dynamic tracking ability of the file protection technology.

【技术实现步骤摘要】

本专利技术涉及文件加密
,尤其涉及一种对可执行文件源代码保护的方法及直O
技术介绍
众所周知,软件防盗版、防修改一直是计算机安全领域的一个重要课题。在众多的 软件保护技术中,软件加壳技术是软件保护的重要手段,但当前互联网上很多黑客工具仍 能够破解软件,因此拥有一个独特的加壳程序很有必要。现有的软件加壳技术通常使用较多的是嵌入方式。该方式是向目标可执行文件 ELF(Executable and Linkable R)rmat,可执行链接格式)中直接注入一段二进制代码,再 将程序的入口地址改为这段被插入的二进制代码的地址,在其后才跳转到程序原始的入口 地址,执行真正的程序部分。注入的这一段二进制代码是该方法的核心,一般含有解密或解 压缩程序,花指令代码和一些反动态跟踪的代码。这种方法可以有效地防止静态分析,但其 反动态跟踪的能力一般。
技术实现思路
本专利技术的主要目的在于提供一种对可执行文件源代码保护的方法及装置,旨在提 高反动态跟踪能力。为了实现专利技术目的,本专利技术提供一种对可执行文件源代码保护的方法,包括以下 步骤获取需要加壳的目标可执行链接格式ELF文件;提取目标ELF文件中的核心部分;所述核心部分包括数据段、代码段、对栈段及动 态链接表;创建新的ELF文件框架;将目标ELF文件的核心部分和加壳部分整合;将整合结果按ELF结构填入到新的ELF文件框架中;完成重构新的ELF文件并设置其属性为可执行。优选地,所述将目标文件的核心部分和加壳部分整合包括分别计算出加壳部分和目标文件核心部分所占物理文件的大小和所占内存的大 小;将目标文件核心部分中段/节的内容续写到加壳部分对应段/节的后面;将程序头表及节头表的段/节属性中与大小相关的参数设置成新计算出的大小。优选地,所述创建新的ELF文件框架包括按照ELF文件标准,创建一个新的文件,其文件结构符合ELF文件规范,并完成ELF 文件头部信息的填写,将相关段落暂时空出,以供后续填充使用。优选地,所述将整合结果按ELF结构填入到新的ELF文件框架中包括重新计算段/节属性参数;修改新的ELF文件,将计算好的属性参数填入新的ELF文件头中,再将整合好的段 /节按照ELF文件规范填入新的ELF文件对应位置。优选地,所述将目标文件的核心部分和加壳部分整合还包括当将目标文件的核心部分和加壳部分整合失败时,删除生成的临时文件和新的 ELF文件,并释放相应的空间。本专利技术还提供一种对可执行文件源代码保护的装置,包括文件获取单元,用于获取需要加壳的目标可执行链接格式ELF文件;核心部分提取单元,用于提取目标ELF文件中的核心部分;所述核心部分包括数 据段、代码段、对栈段及动态链接表;文件框架创建单元,用于创建新的ELF文件框架;加密单元,用于将目标ELF文件的核心部分和加壳部分整合;整合结果读写单元,用于将整合结果按ELF结构填入到新的ELF文件框架中;属性设置单元,用于完成重构新的ELF文件并设置其属性为可执行。优选地,所述加密单元包括运算模块,用于分别计算出加壳部分和目标文件核心部分所占物理文件的大小和 所占内存的大小;续写模块,用于将目标文件核心部分中段/节的内容续写到加壳部分对应段/节 的后面;参数设置模块,用于将程序头表及节头表的段/节属性中与大小相关的参数设置 成新计算出的大小。优选地,所述文件框架创建单元具体用于按照ELF文件标准,创建一个新的文件,其文件结构符合ELF文件规范,并完成ELF 文件头部信息的填写,将相关段落暂时空出,以供后续填充使用。优选地,所述整合结果读写单元具体用于重新计算段/节属性参数;修改新的ELF文件,将计算好的属性参数填入新的ELF文件头中,再将整合好的段 /节按照ELF文件规范填入新的ELF文件对应位置。优选地,所述加密单元还包括删除模块,用于当将目标文件的核心部分和加壳部分整合失败时,删除生成的临 时文件和新的ELF文件,并释放相应的空间。本专利技术所提供的对可执行文件源代码保护的方法或装置,将目标系统的可执行文 件中的核心部分提取出来,再和准备好的解密或解压缩程序,将反静态分析和反动态跟踪 程序结合在一起,按照目标系统可执行文件标准格式重新构造一个全新的可执行文件,可 将加壳的各项功能程序和目标程序很好的融合为一体,从而提高文件保护技术的反动态跟 踪言旨力O附图说明图1为本专利技术一实施方式中对可执行文件源代码保护的方法的流程5图2为本专利技术一实施方式中对可执行文件源代码保护的装置的结构示意图;图3为本专利技术一实施例中对可执行文件源代码保护的装置的工作流程图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施例方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。图1示出了本专利技术的一个实施方式中可执行文件源代码保护的方法的步骤流程。 该流程包括以下步骤步骤S10,获取需要加壳的目标可执行链接格式ELF文件;在一实施例中,可先获 取需要加壳的目标文件,并判断该目标文件是否是标准的ELF可执行文件。通过将目标文 件头部文件提取,按照ELF文件结构,解析出每一个字段,确保该目标文件是可以进行加壳 保护的文件。步骤S20,提取目标ELF文件中的核心部分;所述核心部分包括数据段、代码段、对 栈段及动态链接表;提取核心部分也就是将这些部分单独复制出来,用以后面代码整合中 使用。这里以.text节为例,说明如何提取核心部分。该节保存着程序的正文或者说是可 执行指令。首先,根据ELF文件头中的信息,首先定位到程序头表,在程序头表中在定位到 代码段(整个代码段都是需要的核心部分)。然后,再定位到.text位置,将其中的数据代 码复制出来,其他段或节都以同样的方法获得。步骤S30,创建新的ELF文件框架;在一实施例中,步骤S30可包括按照ELF文件 标准,创建一个新的文件,其文件结构符合ELF文件规范,并完成ELF文件头部信息的填写, 将数据段、代码段和堆栈段等相关段落暂时空出,以供后续填充使用。步骤S40,将目标ELF文件的核心部分和加壳部分整合;该步骤是整个方法的核 心,需要进行精确的计算,来正确的设置ELF文件头、程序头表以及节头表等数据,这样新 生成的ELF文件才能正常运行。在一实施例中,该步骤可具体包括分别计算出加壳部分和 目标文件核心部分所占物理文件的大小和所占内存的大小;将目标文件核心部分中段/节 的内容续写到加壳部分对应段/节的后面;将程序头表及节头表的段/节属性中与大小相 关的参数设置成新计算出的大小。此处还是以.text节为例详细说明该步骤流程。首先, 分别计算出加壳部分.text节占物理文件的大小和载入内存所占内存的大小,以及目标文 件核心部分.text节占物理文件的大小和载入内存所占内存的大小;然后,将目标文件核 心部分.text节内容续写到加壳部分.text节的后面,使得程序在载入内存执行时顺序执 行;再将程序头表、节头表中.text节属性中与大小相关的参数对应设置成新计算出的大 小。至此,.text节部分的整合完成,其他段或节都以同样的方法整合。本步骤中所实现的功能便是将目标文件的核心部分加密,且在程序执行时在内存 中解密;并且对于各种外部中断进行监控,完成反静态编译和动态跟踪的目的本文档来自技高网...

【技术保护点】
1.一种对可执行文件源代码保护的方法,其特征在于,包括以下步骤:获取需要加壳的目标可执行链接格式ELF文件;提取目标ELF文件中的核心部分;所述核心部分包括数据段、代码段、对栈段及动态链接表;创建新的ELF文件框架;将目标ELF文件的核心部分和加壳部分整合;将整合结果按ELF结构填入到新的ELF文件框架中;完成重构新的ELF文件并设置其属性为可执行。

【技术特征摘要】

【专利技术属性】
技术研发人员:王宇
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94

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

1