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

技术编号:10019592 阅读:151 留言:0更新日期:2014-05-08 18:52
本发明专利技术实施例提供了一种从二进制文件中提取代码信息的方法和装置,该方法采取预先定义软件的配置信息,与软件其它部分的代码明确区分开,并在编译过程中划分专用空间用于存储经可逆算法得到的配置信息,从而从该专用空间读取该软件配置信息后,就可以通过逆向的方法还原软件的配置代码,这样便可基于原始的代码,重新编写和编译满足其它配置需求的软件,这种提取代码信息的方法灵活方便,且出错风险低。

【技术实现步骤摘要】
一种从二进制文件中提取代码信息的方法及装置
本专利技术涉及计算机
,具体涉及一种从二进制文件中提取代码信息的方法及装置。
技术介绍
在计算机软件领域,当我们需要某个功能的软件时,通常是由专业的软件技术开发人员先将软件源代码编写好,然后软件编程人员编写、维护的软件源代码本身不可以直接运行,需要通过编译器将其编译为硬件设备可识别的二进制程序才能运行。这个二进制程序通常是由软件编程语言底层的编译器通过很复杂的算法来转换的,这个过程是一个不可逆过程,也就是我们无法直接基于编译好的二进制软件逆向还原出其原始的软件代码。然后,人们经常会遇到需要对软件进行小幅度修改的情况,但即使非常小的修改,也无法直接修改可运行的二进制软件程序,通常需要依靠修改其源程序代码来进行。这种方法存在的缺陷是:有些情况下可能找不到与该二进制软件精确匹配的软件源代码,或者找错源代码,因此有出错风险;并且较难在软件技术开发人员相互之间交接程序修改的工作,不方便且工作量较大。因此,现有技术有待改进和提高。
技术实现思路
本专利技术实施例提供一种从二进制文件中提取代码信息的方法及装置,以期从二进制文件中还原出源代码信息,从而更方便快捷地对源代码进行修改。第一方面,本专利技术实施例提供一种从二进制文件中提取代码信息的方法,所述方法包括:从二进制存储文件的专用空间中读取第一配置信息;其中,所述专用空间为软件编译过程中设置的用于存储软件第一配置信息的空间,所述第一配置信息为第二配置信息经可逆算法转换得到的配置信息,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;根据逆向算法将读取的第一配置信息还原为所述第二配置信息。其中,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。进一步的,所述方法还包括:基于还原得到的第二配置信息,进行重新编写和编译以满足新的软件需求。所述第二配置信息包括:软件功能开关和外部资源。第二方面,本专利技术实施例还提供一种从二进制文件中提取代码信息的装置,包括:转换模块,用于将第二配置信息经过可逆算法转换为第一配置信息,其中,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;设置模块,用于在软件编译过程中在二进制存储文件的存储空间中设置专用空间,所述专用空间用于存储所述第一配置信息;读取模块,用于从所述专用空间中读取所述第一配置信息;还原模块,用于根据逆向算法将所述读取模块读取的第一配置信息还原为第二配置信息。本专利技术实施例提供的从二进制文件中提取代码信息的方法,采取预先定义软件的配置信息,与软件其它部分的代码明确区分开,并在编译过程中划分专用空间用于存储经逆向算法得到的配置信息,从而从该专用空间读取该软件配置信息后,就可以通过逆向的方法还原软件的配置代码,这样便可基于原始的代码,重新编写和编译满足其它配置需求的软件,这种提取代码信息的方法灵活方便,且出错风险低。附图说明图1是本专利技术实施例提供的一种从二进制文件中提取代码信息的方法流程示意图;图2是本专利技术实施例提供的一种从二进制文件中提取代码信息的装置结构示意图。具体实施方式本专利技术实施例提供一种从二进制文件中提取代码信息的方法及装置,以期从二进制文件中还原出源代码信息,从而更方便快捷地对源代码进行修改。为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。本专利技术实施例提供一种从二进制文件中提取代码信息的方法,包括:从二进制存储文件的专用空间中读取第一配置信息;其中,所述专用空间为软件编译过程中设置的用于存储软件第一配置信息的空间,所述第一配置信息为第二配置信息经可逆算法转换得到的配置信息,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;根据逆向算法将读取的第一配置信息还原为所述第二配置信息。其中,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。进一步的,所述方法还包括:基于还原得到的第二配置信息,进行重新编写和编译以满足新的软件需求。所述第二配置信息可以包括:软件功能开关和外部资源。需要说明的是,所述逆向算法为所述可逆算法经过反推得到的算法。由上可见,本专利技术实施例提供的从二进制文件中提取代码信息的方法,采取预先定义软件的配置信息,与软件其它部分的代码明确区分开,并在编译过程中划分专用空间用于存储经可逆算法得到的配置信息,从而从该专用空间读取该软件配置信息后,就可以通过逆向的方法还原软件的配置代码,这样便可基于原始的代码,重新编写和编译满足其它配置需求的软件,这种提取代码信息的方法灵活方便,且出错风险低。本专利技术实施例还提供一种从二进制文件中提取代码信息的方法,参见图1所示,包括:S101、定义软件关键配置信息,称为第二配置信息;在编写软件的时候要明确定义出“关键配置信息”,通常是一些软件功能开关或者必要的外部资源定义,编写软件时需要将这部分代码与其它部分的代码明确区分开。S102、将所述第二配置信息通过一定的可逆算法,转换为可扩展标记语言(ExtensibleMarkupLanguage,简称为XML)格式、数据库格式、轻量级的数据交换格式(JavaScriptObjectNotation,简称为JSON)或者其它形式的数据格式,经格式转换后的配置信息称为第一配置信息;S103、在软件的编译过程中,在二进制存储文件里为该软件划分一个专用的空间,将第一配置信息存储于这个专用空间中;例如,软件代码中的关键配置信息如下:宏配置信息其它配置信息在编译过程中对上述配置信息进行格式转换,并存储在二进制文件的专用空间中,如下:在进行格式转换时,用JSON、XML、数据库或其它形式存储配置信息都可。S104、从专用空间里读取出第一配置信息,通过逆向的算法将第一配置信息还原为第二配置信息。这样,便可基于第二配置信息,即原始的代码仓库,重新编写和编译满足其它配置需求的软件。由上可见,本专利技术实施例提供的从二进制文件中提取代码信息的方法,采取在二进制文件中划分专用空间,用于存储软件配置信息,通过一定的可逆算法存储软件配置信息,基于逆向算法可以将存储的配置信息回转回相应的部分或全部软件代码,该方法快捷方便。本专利技术实施例还提供一种从二进制文件中提取代码信息的装置,参见图2所示,包括:转换模块201,用于将第二配置信息经过可逆算法转换为第一配置信息,其中,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;设置模块202,用于在软件编译过程中在二进制存储文件的存储空间中设置专用空间,所述专用空间用于存储所述第一配置信息;读取模块203,用于从所述专用空间中读取所述第一配置信息;还原模块204,用于根据逆向算法将所述读取模块读取的第一配置信息还原为第二配置信息。其中,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。由上可见,本专利技术实施例提供的从二进制文件中提取代码信息的装置,采本文档来自技高网
...
一种从二进制文件中提取代码信息的方法及装置

【技术保护点】
一种从二进制文件中提取代码信息的方法,其特征在于,所述方法包括:从二进制存储文件的专用空间中读取第一配置信息;其中,所述专用空间为软件编译过程中设置的用于存储软件第一配置信息的空间,所述第一配置信息为第二配置信息经可逆算法转换得到的配置信息,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;根据逆向算法将读取的第一配置信息还原为所述第二配置信息。

【技术特征摘要】
1.一种从二进制文件中提取代码信息的方法,其特征在于,所述方法包括:从二进制存储文件的专用空间中读取第一配置信息;其中,所述专用空间为软件编译过程中设置的用于存储软件第一配置信息的空间,所述第一配置信息为第二配置信息经可逆算法转换得到的配置信息,所述第二配置信息为软件编写过程中定义的与软件功能实现相关的代码;所述第二配置信息包括:软件功能开关和外部资源;根据逆向算法将读取的第一配置信息还原为所述第二配置信息;所述方法还包括:基于还原得到的第二配置信息,进行重新编写和编译以满足新的软件需求。2.根据权利要求1所述的方法,其特征在于,所述可逆算法包括:可扩展标记语言格式转换算法、数据库格式转换算法、轻量级数据交换格式转换算法。3.一种从二进制文件中提取代...

【专利技术属性】
技术研发人员:徐锦亮肖文鲲辛奇俊
申请(专利权)人:广州视源电子科技股份有限公司
类型:发明
国别省市:广东;44

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

1