反混淆代码的方法、装置和电子设备制造方法及图纸

技术编号:27742731 阅读:14 留言:0更新日期:2021-03-19 13:36
本发明专利技术提供了一种反混淆代码的方法、装置和电子设备,涉及软件安全技术领域,该方法包括:首先获取混淆符号的第一关联关系和明文符号的第二关联关系,混淆符号包括若干个混淆字符,明文符号包括若干个明文字符;然后基于第一关联关系和第二关联关系,确定混淆符号中混淆字符和明文符号中明文字符的对应关系;再基于对应关系将混淆符号替换为明文符号,以获取反混淆后的可执行程序。通过该方法可以缓解现有技术中存在的反混淆代码工作量大、效率低的技术问题,实现节约时间,降低成本的效果。

【技术实现步骤摘要】
反混淆代码的方法、装置和电子设备
本专利技术涉及软件安全

,尤其是涉及一种反混淆代码的方法、装置和电子设备。
技术介绍
在JAVA项目的开发中,一般会使用ProGuard等工具对输出的jar文件进行混淆,从而降低代码可读性,增加代码的逆向工程成本,提高安全性。开源软件一般可以源代码和可执行程序两种形式进行发布,为了降低代码的存储空间,通常会使用混淆技术对发表的可执行程序进行处理。在安全研究中发现,存在一些开源软件被修改、植入恶意代码的情况,以及基于开源代码进行定制、添加功能的情况,而定位这部分植入或者定制的代码需要进行逆向工程,现有方案一般使用辅助工具,例如交互式反汇编器专业版(InteractiveDisassemblerProfessional,IDAPro),对混淆后的符号名进行手动修改,会消耗大力的时间。
技术实现思路
本专利技术的目的在于提供一种反混淆代码的方法、装置和电子设备,以缓解现有技术中存在的反混淆代码工作量大、效率低的技术问题。为了实现上述目的,本专利技术实施例采用的技术方案如下:第一方面,本专利技术实施例提供了一种反混淆代码的方法,该方法包括:获取混淆符号的第一关联关系和明文符号的第二关联关系;所述混淆符号包括若干个混淆字符,所述明文符号包括若干个明文字符;所述第一关联关系包括若干个所述混淆字符之间的关系,所述第二关联关系包括若干个所述明文字符之间的关系;基于所述第一关联关系和所述第二关联关系,确定所述混淆符号中所述混淆字符和所述明文符号中所述明文字符的对应关系;基于所述对应关系,将所述混淆符号替换为所述明文符号,以获取反混淆后的可执行程序。在一些实施方式中,所述混淆符号基于待逆向可执行程序确定,所述明文符号基于明文可执行程序确定。在一些实施方式中,获取混淆符号的第一关联关系和明文符号的第二关联关系的步骤,包括:对待逆向可执行程序进行反汇编,获取混淆符号的第一关联关系。在一些实施方式中,获取混淆符号的第一关联关系和明文符号的第二关联关系的步骤,还包括:对所述明文可执行程序进行反汇编,获取明文符号的第二关联关系。在一些实施方式中,获取混淆符号的第一关联关系和明文符号的第二关联关系的步骤,还包括:将源代码进行编译,得到明文可执行程序。在一些实施方式中,所述混淆字符包括:第一类名、第一函数名、第一成员名、第一变量名;所述明文字符包括:第二类名、第二函数名、第二成员名、第二变量名。在一些实施方式中,所述对应关系包括:所述第一关联关系和所述第二关联关系均包括一个第一特征字符。在一些实施方式中,所述对应关系还包括:所述第一关联关系和所述第二关联关系均包括多个第二特征字符。第二方面,本专利技术实施例提供了一种反混淆代码的装置,该装置包括:关联关系获取模块,用于获取混淆符号的第一关联关系和明文符号的第二关联关系;所述混淆符号包括若干个混淆字符,所述明文符号包括若干个明文字符;所述第一关联关系包括若干个所述混淆字符之间的关系,所述第二关联关系包括若干个所述明文字符之间的关系;对应关系确定模块,用于基于所述第一关联关系和所述第二关联关系,确定所述混淆符号中所述混淆字符和所述明文符号中所述明文字符的对应关系;替换模块,用于基于所述对应关系,将所述混淆符号替换为所述明文符号,以获取反混淆后的可执行程序。第三方面,本专利技术实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。本专利技术提供了一种反混淆代码的方法、装置和电子设备,该方法包括:首先获取混淆符号的第一关联关系和明文符号的第二关联关系,混淆符号包括若干个混淆字符,明文符号包括若干个明文字符;然后基于第一关联关系和第二关联关系,确定混淆符号中混淆字符和明文符号中明文字符的对应关系;再基于对应关系将混淆符号替换为明文符号,以获取反混淆后的可执行程序。通过该方法可以缓解现有技术中存在的反混淆代码工作量大、效率低的技术问题,实现节约时间,降低成本的效果。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种反混淆代码的方法流程示意图;图2为本专利技术实施例提供的一种反混淆代码的混淆前后示意图;图3为本专利技术实施例提供的一种反混淆代码的装置结构示意图;图4为本专利技术实施例提供的一种电子设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在JAVA项目的开发中,一般会使用ProGuard等工具对输出的jar文件进行混淆,从而降低代码可读性,增加代码的逆向工程成本,提高安全性。开源软件一般可以源代码和可执行程序两种形式进行发布,为了降低代码的存储空间,通常会使用混淆技术对发表的可执行程序进行处理。在安全研究中发现,存在一些开源软件被修改、植入恶意代码的情况,以及基于开源代码进行定制、添加功能的情况,而定位这部分植入或者定制的代码需要进行逆向工程,由于符号名一般直接代表一个函数的功能,所以如果可以恢复出一个被混淆函数的符合名将对逆向工程带来巨大的帮助。现有方案一般使用辅助工具,例如交互式反汇编器专业版,对混淆后的符号名进行手动修改,会消耗大力的时间。基于此,本专利技术实施例提供了一种反混淆代码的方法、装置和电子设备,以缓解现有技术中存在的反混淆代码工作量大、效率低的技术问题。为便于对本实施例进行理解,首先对本专利技术实施例所公开的一种反混淆代码的方法进行详细介绍,参见图1所示的一种反混淆代码的方法的流程示意图,该方法可以由电子设备执行,主要包括以下步骤S110至步骤S130:S110,获取混淆符号的第一关联关系和明文符号的第二关联关系;其中,混淆符号包括若干个混淆字符,明文符号包括若干个明文字符;第一关联关系包括若干个混淆字符之间的关系,第二关联关系包括若干个明文字符之间的关系。该混淆符号基于待逆向可执行程序确定,在一种实施例中,获取混淆符号的第一关联关系的方法可以包括:对待逆向可执行程序进行反汇编,获取内部混淆符号之间的第一关联关系。作为一个具体的示例,可以使用Obj本文档来自技高网...

【技术保护点】
1.一种反混淆代码的方法,其特征在于,包括:/n获取混淆符号的第一关联关系和明文符号的第二关联关系;所述混淆符号包括若干个混淆字符,所述明文符号包括若干个明文字符;所述第一关联关系包括若干个所述混淆字符之间的关系,所述第二关联关系包括若干个所述明文字符之间的关系;/n基于所述第一关联关系和所述第二关联关系,确定所述混淆符号中所述混淆字符和所述明文符号中所述明文字符的对应关系;/n基于所述对应关系,将所述混淆符号替换为所述明文符号,以获取反混淆后的可执行程序。/n

【技术特征摘要】
1.一种反混淆代码的方法,其特征在于,包括:
获取混淆符号的第一关联关系和明文符号的第二关联关系;所述混淆符号包括若干个混淆字符,所述明文符号包括若干个明文字符;所述第一关联关系包括若干个所述混淆字符之间的关系,所述第二关联关系包括若干个所述明文字符之间的关系;
基于所述第一关联关系和所述第二关联关系,确定所述混淆符号中所述混淆字符和所述明文符号中所述明文字符的对应关系;
基于所述对应关系,将所述混淆符号替换为所述明文符号,以获取反混淆后的可执行程序。


2.根据权利要求1所述的反混淆代码的方法,其特征在于,所述混淆符号基于待逆向可执行程序确定,所述明文符号基于明文可执行程序确定。


3.根据权利要求2所述的反混淆代码的方法,其特征在于,获取混淆符号的第一关联关系和明文符号的第二关联关系的步骤,包括:
对待逆向可执行程序进行反汇编,获取混淆符号的第一关联关系。


4.根据权利要求3所述的反混淆代码的方法,其特征在于,获取混淆符号的第一关联关系和明文符号的第二关联关系的步骤,还包括:
对所述明文可执行程序进行反汇编,获取明文符号的第二关联关系。


5.根据权利要求4所述的反混淆代码的方法,其特征在于,获取混淆符号的第一关联关系和明文符号的第二关联关系的步骤,还包括:
将源代码进行编译,得到明文可执行程序。

【专利技术属性】
技术研发人员:泮晓波陈树华
申请(专利权)人:山东小葱数字科技有限公司
类型:发明
国别省市:山东;37

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

1