一种从二进制文件中提取代码信息的方法及装置制造方法

文档序号:6539198阅读:180来源:国知局
一种从二进制文件中提取代码信息的方法及装置制造方法
【专利摘要】本发明实施例提供了一种从二进制文件中提取代码信息的方法和装置,该方法采取预先定义软件的配置信息,与软件其它部分的代码明确区分开,并在编译过程中划分专用空间用于存储经可逆算法得到的配置信息,从而从该专用空间读取该软件配置信息后,就可以通过逆向的方法还原软件的配置代码,这样便可基于原始的代码,重新编写和编译满足其它配置需求的软件,这种提取代码信息的方法灵活方便,且出错风险低。
【专利说明】一种从二进制文件中提取代码信息的方法及装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,具体涉及一种从二进制文件中提取代码信息的方法
及装置。
【背景技术】
[0002]在计算机软件领域,当我们需要某个功能的软件时,通常是由专业的软件技术开发人员先将软件源代码编写好,然后软件编程人员编写、维护的软件源代码本身不可以直接运行,需要通过编译器将其编译为硬件设备可识别的二进制程序才能运行。这个二进制程序通常是由软件编程语言底层的编译器通过很复杂的算法来转换的,这个过程是一个不可逆过程,也就是我们无法直接基于编译好的二进制软件逆向还原出其原始的软件代码。
[0003]然后,人们经常会遇到需要对软件进行小幅度修改的情况,但即使非常小的修改,也无法直接修改可运行的二进制软件程序,通常需要依靠修改其源程序代码来进行。这种方法存在的缺陷是:有些情况下可能找不到与该二进制软件精确匹配的软件源代码,或者找错源代码,因此有出错风险;并且较难在软件技术开发人员相互之间交接程序修改的工作,不方便且工作量较大。因此,现有技术有待改进和提高。

【发明内容】

[0004]本发明实施例提供一种从二进制文件中提取代码信息的方法及装置,以期从二进制文件中还原出源代码信息,从而更方便快捷地对源代码进行修改。
[0005]第一方面,本发明实施例提供一种从二进制文件中提取代码信息的方法,所述方法包括:
[0006]从二进制存储文件的专用空间中读取第一配置信息;其中,所述专用空间为软件编译过程中设置的用于存储软件第一配置信息的空间,所述第一配置信息为第二配置信息经可逆算法转换得到的配置信息,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;
[0007]根据逆向算法将读取的第一配置信息还原为所述第二配置信息。
[0008]其中,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。
[0009]进一步的,所述方法还包括:基于还原得到的第二配置信息,进行重新编写和编译以满足新的软件需求。
[0010]所述第二配置信息包括:软件功能开关和外部资源。
[0011]第二方面,本发明实施例还提供一种从二进制文件中提取代码信息的装置,包括:
[0012]转换模块,用于将第二配置信息经过可逆算法转换为第一配置信息,其中,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;
[0013]设置模块,用于在软件编译过程中在二进制存储文件的存储空间中设置专用空间,所述专用空间用于存储所述第一配置信息;
[0014]读取模块,用于从所述专用空间中读取所述第一配置信息;
[0015]还原模块,用于根据逆向算法将所述读取模块读取的第一配置信息还原为第二配
置信息。
[0016]本发明实施例提供的从二进制文件中提取代码信息的方法,采取预先定义软件的配置信息,与软件其它部分的代码明确区分开,并在编译过程中划分专用空间用于存储经逆向算法得到的配置信息,从而从该专用空间读取该软件配置信息后,就可以通过逆向的方法还原软件的配置代码,这样便可基于原始的代码,重新编写和编译满足其它配置需求的软件,这种提取代码信息的方法灵活方便,且出错风险低。
【专利附图】

【附图说明】
[0017]图1是本发明实施例提供的一种从二进制文件中提取代码信息的方法流程示意图;
[0018]图2是本发明实施例提供的一种从二进制文件中提取代码信息的装置结构示意图。
【具体实施方式】
[0019]本发明实施例提供一种从二进制文件中提取代码信息的方法及装置,以期从二进制文件中还原出源代码信息,从而更方便快捷地对源代码进行修改。
[0020]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0021]本发明实施例提供一种从二进制文件中提取代码信息的方法,包括:
[0022]从二进制存储文件的专用空间中读取第一配置信息;其中,所述专用空间为软件编译过程中设置的用于存储软件第一配置信息的空间,所述第一配置信息为第二配置信息经可逆算法转换得到的配置信息,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;
[0023]根据逆向算法将读取的第一配置信息还原为所述第二配置信息。
[0024]其中,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。
[0025]进一步的,所述方法还包括:基于还原得到的第二配置信息,进行重新编写和编译以满足新的软件需求。
[0026]所述第二配置信息可以包括:软件功能开关和外部资源。
[0027]需要说明的是,所述逆向算法为所述可逆算法经过反推得到的算法。
[0028]由上可见,本发明实施例提供的从二进制文件中提取代码信息的方法,采取预先定义软件的配置信息,与软件其它部分的代码明确区分开,并在编译过程中划分专用空间用于存储经可逆算法得到的配置信息,从而从该专用空间读取该软件配置信息后,就可以通过逆向的方法还原软件的配置代码,这样便可基于原始的代码,重新编写和编译满足其它配置需求的软件,这种提取代码信息的方法灵活方便,且出错风险低。
[0029]本发明实施例还提供一种从二进制文件中提取代码信息的方法,参见图I所示,包括:
[0030]S101、定义软件关键配置信息,称为第二配置信息;
[0031]在编写软件的时候要明确定义出“关键配置信息”,通常是一些软件功能开关或者必要的外部资源定义,编写软件时需要将这部分代码与其它部分的代码明确区分开。
[0032]S102、将所述第二配置信息通过一定的可逆算法,转换为可扩展标记语言(Extensible Markup Language,简称为XML)格式、数据库格式、轻量级的数据交换格式(JavaScript Object Notation,简称为JS0N)或者其它形式的数据格式,经格式转换后的配置信息称为第一配置信息;
[0033]S103、在软件的编译过程中,在二进制存储文件里为该软件划分一个专用的空间,将第一配置信息存储于这个专用空间中;
[0034]例如,软件代码中的关键配置信息如下:
[0035]宏配置信息
[0036]
【权利要求】
1.一种从二进制文件中提取代码信息的方法,其特征在于,所述方法包括: 从二进制存储文件的专用空间中读取第一配置信息;其中,所述专用空间为软件编译过程中设置的用于存储软件第一配置信息的空间,所述第一配置信息为第二配置信息经可逆算法转换得到的配置信息,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码; 根据逆向算法将读取的第一配置信息还原为所述第二配置信息。
2.根据权利要求1所述的方法,其特征在于,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于还原得到的第二配置信息,进行重新编写和编译以满足新的软件需求。
4.根据权利要求1所述的方法,其特征在于,所述第二配置信息包括:软件功能开关和外部资源。
5.一种从二进制文件中提取代码信息的装置,其特征在于,包括: 转换模块,用于将第二配置信息经过可逆算法转换为第一配置信息,其中,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码; 设置模块,用于在软件编译过程中在二进制存储文件的存储空间中设置专用空间,所述专用空间用于存储所述第一配置信息; 读取模块,用于从所述专用空间中读取所述第一配置信息; 还原模块,用于根据逆向算法将所述读取模块读取的第一配置信息还原为第二配置信肩、O
6.根据权利要求5所述的装置,其特征在于,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。
【文档编号】G06F9/44GK103777966SQ201410073860
【公开日】2014年5月7日 申请日期:2014年2月28日 优先权日:2014年2月28日
【发明者】徐锦亮, 肖文鲲, 辛奇俊 申请人:广州视源电子科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1