[发明专利]跨平台目标文件复用方法有效
| 申请号: | 201410133527.1 | 申请日: | 2014-04-03 |
| 公开(公告)号: | CN103886095B | 公开(公告)日: | 2017-10-24 |
| 发明(设计)人: | 孙吉平;韩勇 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/44 |
| 代理公司: | 北京金信知识产权代理有限公司11225 | 代理人: | 黄威,喻嵘 |
| 地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 平台 目标 文件 方法 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种跨平台目标文件复用方法。
背景技术
同一编程语言不同编译器之间甚至不同语言之间的目标文件进行共享/复用,如C语言目标文件有elf格式、coff格式和omf格式。软件保护中,使用自定编译器(一般使用开源编译器以节省时间和成本)对部分源文件进行编译和处理生成加密的代码是一种有效的方法。软件开发需要一整套的开发工具,包括文本编辑器、编译器、汇编器、链接器等,对于软件保护工具开发者而言,开发这样一套工具是不经济也不必要的,用户使用其惯用的开发工具而配以软件保护工具是一种实用的方法。例如Microsoft Visual Studio是一套常用的商用软件开发工具,可以以开源的GCC(GNU Compiler Collection)或clang编译器为基础开发软件保护工具配合VC编译器使用,保护C/C++语言开发的软件。但是,不同编译器的目标文件格式不同,不能兼容。更改结构复杂,源代码冗长的编译器是一种代价较大的方法。
COFF(Common Object File Format,通用对象文件格式)是一种很流行的对象文件格式。比如,Visual Studio编译器所产生的目标文件(*.obj)就是这种格式。其它的编译器,如GCC、ICL(Intel C/C++Compiler)、VectorC,也使用这种格式的目标文件。不仅仅是C/C++,很多其它语言也使用这种格式的对象文件。
COFF文件的整体结构如下:
COFF文件一共有8种数据,自上而下分别为:
1.文件头(File Header)
2.可选头(Optional Header)
3.段落头(Section Header)
4.段落数据(Section Data)
5.重定位表(Relocation Directives)
6.行号表(Line Numbers)
7.符号表(Symbol Table)
8.字符串表(String Table)。
其中,除了段落头可以有多个节(因为可以有多个段落)以外,其它的所有类型的节只能有一个。
文件头:COFF文件的头,它用来保存COFF文件的基本信息,如文件标识,各个表的位置等等。
可选头:在目标文件中,基本上都没有这个头;但在其它的文件中(如:可执行文件)这个段用来保存在文件头中没有描述到的信息。
段落头:用来描述段落信息,每个段落都有一个段落头来描述。段落的数目在文件头中会指出。
段落数据:通常是COFF文件中最大的数据段,每个段落真正的数据就保存在这个位置。
重定位表:通常只存在于目标文件中,用来描述COFF文件中符号的重定位信息。
符号表:用来保存COFF文件中所用到的所有符号的信息,连接多个COFF文件时,这个表帮助我们重定位符号。调试程序时也要用到它。
字符串表:用来保存字符串的。符号表是以记录的形式来描述符号信息的,但它只为符号名称留置了8个字符的空间,在现在的程序中,一个符号名动不动就数十个字符,8个字符空间的不够,因此需将这些名称存在字符串表中。而符号表中只记录这些字符串的位置。
ELF格式简介如下:
ELF(Executable and Linkable Format,可执行连接格式)是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。
ELF头位于文件的开始,描述了该文件的组织情况。sections保存着object文件的信息,较为常见的section包括指令、数据、符号表、字符串表、重定位信息等等。section头表(section header table)包含了描述文件sections的信息。每个section在这个表中有一个入口;每个入口给出了该section的名字,大小,等等信息。各部分分布如下表所示:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410133527.1/2.html,转载请声明来源钻瓜专利网。





