CN106203007B - 一种代码处理方法、装置及计算设备 - Google Patents

一种代码处理方法、装置及计算设备 Download PDF

Info

Publication number
CN106203007B
CN106203007B CN201510232568.0A CN201510232568A CN106203007B CN 106203007 B CN106203007 B CN 106203007B CN 201510232568 A CN201510232568 A CN 201510232568A CN 106203007 B CN106203007 B CN 106203007B
Authority
CN
China
Prior art keywords
code
codes
development
vulnerability
confusion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510232568.0A
Other languages
English (en)
Other versions
CN106203007A (zh
Inventor
高岳
王金锭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510232568.0A priority Critical patent/CN106203007B/zh
Publication of CN106203007A publication Critical patent/CN106203007A/zh
Application granted granted Critical
Publication of CN106203007B publication Critical patent/CN106203007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例提供一种代码处理方法、装置及计算设备,其中方法包括:对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;确定所述反编译后的代码中需分析的目标代码;根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。本发明实施例提供的代码处理方法,可为减小应用安装文件的代码分析难度,提升分析结果的准确性提供基础,使得后续对应用的安装文件进行代码分析时,可降低分析难度,且提升分析结果的准确性。

Description

一种代码处理方法、装置及计算设备
技术领域
本发明涉及数据处理技术领域,具体涉及一种代码处理方法、装置及计算设备。
背景技术
在应用开发过程中,为保护应用的开发代码,需将使用开发代码编译的代码文件进行代码混淆处理,从而生成应用的安装文件,以增加应用的安装文件被反编译的难度,实现对开发代码的保护;如开发一个APK(Android Package,Android安装包),为了更好地保护APK的开发代码,则在编译生成APK安装文件时,需对开发代码编译好的代码文件进行代码混淆处理,如将开发代码对应的类名、函数名和变量名等混淆为字母。
目前为实现应用的漏洞检测、代码定位等目的,通常需要对应用的安装文件进行代码分析;在对应用的安装文件进行代码分析时,主要使用反编译技术,对应用的安装文件进行反编译,分析反编译后的代码,从而实现代码分析的目的。
本发明的发明人在研究过程中发现,使用反编译技术,对应用的安装文件进行反编译后,反编译后的代码处于代码混淆状态;这使得反编译后的代码的分析难度较大,导致分析得出的分析结果的准确性不高。
发明内容
有鉴于此,本发明实施例提供一种代码处理方法、装置及计算设备,以为减小应用安装文件的代码分析难度,提升分析结果的准确性提供基础。
为实现上述目的,本发明实施例提供如下技术方案:
一种代码处理方法,包括:
对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
确定所述反编译后的代码中需分析的目标代码;
根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。
本发明实施例还提供一种代码处理装置,包括:
反编译模块,用于对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
目标代码确定模块,用于确定所述反编译后的代码中需分析的目标代码;
反混淆模块,用于根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。
本发明实施例还提供一种计算设备,包括上述所述的代码处理装置。
基于上述技术方案,本发明实施例提供的代码处理方法包括:对应用的安装文件进行反编译,得到反编译后的代码;确定所述反编译后的代码中需分析的目标代码;根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件映射有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。采用本发明实施例提供的代码处理方法,可得到应用的开发代码,通过分析所得到的开发代码,可较为容易的对应用的安装文件中的代码进行分析,并且分析结果的准确性较高;本发明实施例提供的代码处理方法,可为减小应用安装文件的代码分析难度,提升分析结果的准确性提供基础,使得后续对应用的安装文件进行代码分析时,可降低分析难度,且提升分析结果的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的代码处理方法的流程图;
图2为本发明实施例提供的设定映射文件的方法流程图;
图3为本发明实施例提供的代码处理方法的另一流程图;
图4为本发明实施例提供的应用的漏洞位置定位方法的流程图;
图5为本发明实施例提供的应用例的示意图;
图6为本发明实施例提供的代码处理装置的结构框图;
图7为本发明实施例提供的代码处理装置的另一结构框图;
图8为本发明实施例提供的反混淆模块的结构框图;
图9为本发明实施例提供的反混淆模块的另一结构框图;
图10为本发明实施例提供的目标代码确定模块的结构框图;
图11为本发明实施例提供的代码处理装置的再一结构框图;
图12为本发明实施例提供的计算设备的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的代码处理方法的流程图,该方法可应用于具有数据处理能力的计算设备中,如手机、笔记本电脑、PC(个人计算机)等用户设备,也可以如服务器等网络侧设备;参照图1,该方法可以包括:
步骤S100、对应用的安装文件进行反编译,得到反编译后的代码;
由于应用的安装文件为经过代码混淆处理后生成的,因此对应用的安装文件进行反编译后,所得到的反编译后的代码也是处于代码混淆状态的;
可选的,反编译后的代码可以为smali代码或者Java代码等,本发明实施例可选用特定代码类型的反编译器对应用的安装文件进行反编译,从而得到特定代码类型的反编译后的代码。
步骤S110、确定所述反编译后的代码中需分析的目标代码;
可选的,目标代码的选取可视实际需求而定;
如本发明实施例提供的代码处理方法的应用需求为进行应用的漏洞位置定位,则目标代码可以为反编译后的代码中的漏洞代码;
如本发明实施例提供的代码处理方法的应用需求为进行代码分析,则可指定反编译后的代码中的某部分用户感兴趣的代码为目标代码,也可指定所有的反编译后的代码为目标代码。
步骤S120、根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。
可选的,本发明实施例可在对应用的开发代码进行代码混淆处理时,通过映射文件记录开发代码和混淆代码的映射关系,所记录的混淆代码为对开发代码进行代码混淆处理后生成的;
以代码对应的类名、变量名和函数名等元素为例,则在对开发代码进行代码混淆处理时,可通过映射文件记录开发代码对应的类名及混淆处理后的类名、开发代码对应的变量名及混淆处理后的变量名、开发代码对应的函数名及混淆处理后的函数名;映射文件的基本格式如下,可参照:
开发代码对应的类名->混淆后类名:
开发代码对应的变量名->混淆后变量名
开发代码对应的函数名->混淆后函数名。
可选的,在设定所述映射文件后,可根据所述映射文件对处于代码混淆状态的目标代码进行反混淆处理,得到代码混淆状态的目标代码所对应的开发代码(该开发代码为应用的源代码,未经过代码混淆处理);
如对应用的安装文件进行反编译后,可从反编译后的处于代码混淆状态的类名、变量名、函数名中确定目标类名、目标变量名、目标函数名(目标类名、目标变量名、目标函数名也处于代码混淆状态);进而根据所述映射文件对目标类名、目标变量名、目标函数名进行反混淆处理,得到对应的开发代码的类名、变量名、函数名;
由于对目标代码进行反混淆处理后,所得到的是应用的开发代码,而开发代码为应用的源代码,并没有经过代码混淆处理;因此通过所得到的开发代码,可较为容易的对应用的安装文件中的代码进行分析,并且分析结果的准确性较高。
本发明实施例提供的代码处理方法包括:对应用的安装文件进行反编译,得到反编译后的代码;确定所述反编译后的代码中需分析的目标代码;根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件映射有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。采用本发明实施例提供的代码处理方法,可得到应用的开发代码,通过分析所得到的开发代码,可较为容易的对应用的安装文件中的代码进行分析,并且分析结果的准确性较高;本发明实施例提供的代码处理方法,可为减小应用安装文件的代码分析难度,提升分析结果的准确性提供基础,使得后续对应用的安装文件进行代码分析时,可降低分析难度,且提升分析结果的准确性。
可选的,在对开发代码进行代码混淆处理的过程中,本发明实施例可生成记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系的映射文件;图2示出了本发明实施例提供的设定映射文件的方法流程,参照图2,该方法可以包括:
步骤S200、在对所述应用的开发代码进行代码混淆处理时,确定混淆处理的初始结果,所述初始结果包括混淆代码和混淆过程参数;其中,所述混淆过程参数用于标识混淆代码唯一对应的开发代码;
可选的,在对开发代码进行代码混淆处理后,开发代码将转变为混淆代码和混淆过程参数;其中混淆过程参数包括:混淆返回值,混淆使用参数类型,混淆使用参数数量等;而通过混淆返回值,混淆使用参数类型,混淆使用参数数量等混淆过程参数可唯一标识混淆代码,使得被混淆过程参数标识的混淆代码可对应未被代码混淆处理时的开发代码;
如开发代码为A,则对开发代码A进行代码混淆处理后,可得到混淆返回值,混淆使用参数类型,混淆使用参数数量等混淆过程参数,及混淆代码a;通过混淆过程参数可标识混淆代码a唯一对应的开发代码A,而不会使得混淆代码a对应至其他的开发代码。
步骤S210、隐藏所述混淆过程参数,建立开发代码与对应的混淆代码的映射关系。
在得到混淆代码和混淆过程参数后,可对混淆过程参数进行隐藏,得到代码混淆处理的最终结果,即混淆代码,从而实现对应用的开发代码的保护;本发明实施例可记录并隐藏混淆过程参数,并建立开发代码与对应的混淆代码的映射关系,从而生成所述映射文件。
可选的,本发明实施例可直接使用映射文件所建立的开发代码与对应的混淆代码的映射关系,实现对目标代码的反混淆处理;即在确定目标代码后,可根据映射文件所建立的开发代码与对应的混淆代码的映射关系,确定所述目标代码所对应的开发代码;
如所确定的目标代码为a,而映射文件中记录有混淆代码a对应的开发代码为A,则直接可确定目标代码a对应的开发代码为A。
可选的,为提升对目标代码作反混淆处理的结果准确性,本发明实施例可通过目标代码对应的混淆过程参数,对目标代码进行反混淆处理,从而得到目标代码对应的开发代码。对应的,图3示出了本发明实施例提供的代码处理方法的另一流程图,参照图3,该方法可以包括:
步骤S300、对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
步骤S310、确定所述反编译后的代码中需分析的目标代码;
步骤S320、根据设定的映射文件恢复所述目标代码对应的混淆过程参数,根据所述目标代码及对应的混淆过程参数,将所述目标代码反混淆处理为对应的开发代码。
如目标代码为a,映射文件中记录有混淆代码a及隐藏的对应的混淆过程参数;则可恢复所隐藏的混淆过程参数,通过所恢复的混淆过程参数与目标代码a,将目标代码a反混淆处理为,该混淆过程参数所唯一标识的目标代码a对应的开发代码A。
可选的,本发明实施例提供的代码处理方法可应用于应用的漏洞检测,从而定位到应用的漏洞所在的位置(如漏洞所在文件、所在类、所在函数和变量名等)。图4为本发明实施例提供的应用的漏洞位置定位方法的流程图,图4所示方法示出了本发明实施例提供的代码处理方法,在应用的漏洞位置定位中的应用;参照图4,该方法可以包括:
步骤S400、对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
步骤S410、对所述反编译后的代码进行漏洞分析,确定漏洞代码;
可选的,漏洞代码的分析方式包括静态检测分析和动态检测分析;
以静态检测分析为例,在得到所述反编译后的代码后,本发明实施例可调取设定的漏洞代码特征,对所述反编译后的代码进行扫描;将扫描得到的所述反编译后的代码中,与所述漏洞代码特征对应的代码,确定为漏洞代码。
步骤S420、根据设定的映射文件对所述漏洞代码进行反混淆处理,得到所述漏洞代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系;
可选的,开发代码的具体反混淆处理过程,可参照上文相应部分。
步骤S430、以所得到的所述漏洞代码对应的开发代码定位所述应用的漏洞位置。
可选的,可以所得到的开发代码的所在文件、所在类、所在函数定位所述应用的漏洞位置;显然,根据实际情况,也可能仅是采用开发代码的所在文件、所在类、所在函数中的至少一项来定位应用的漏洞位置。
需要说明的是,目前应用的漏洞定位方式主要为:对应用的安装文件进行反编译,在从反编译后的代码中定位漏洞代码后,直接以漏洞代码的位置定位应用的漏洞位置;然而由于反编译后的代码处于代码混淆状态,因此以漏洞代码的位置所定位的应用漏洞位置的准确性较低;同时,同一应用可能存在多个不同的版本,而同一应用的不同版本的同一开发代码的代码混淆处理结果可能不同,这将导致同一应用的不同版本的安装文件的反编译结果可能不同,而为保证应用漏洞的定位准确性,目前对同一应用的不同版本的安装文件需进行重复的漏洞定位,这导致应用漏洞定位的工作量较大。
而采用本发明实施例提供的应用的漏洞位置定位方法,对应用的安装文件进行反编译,确定反编译后的代码中的漏洞代码后,并不是直接以所确定的漏洞代码的位置进行应用的漏洞定位;而是再对所述漏洞代码进行反混淆处理,得到所述漏洞代码对应的开发代码,通过开发代码来定位应用的漏洞位置;本发明实施例通过开发代码来定位应用的漏洞位置(可选的,可采用开发代码的所在文件、所在类、所在函数定位应用的漏洞位置),避免了由于定位应用的漏洞位置的代码处于代码混淆状态,所带来的定位准确性较低的问题;同时,同一应用的不同版本的漏洞定位依据是相同的(均是采用开发代码),不会因为同一应用的不同版本的开发代码的混淆处理结果不同,而出现重复定位应用漏洞的情况。
以Andorid系统的漏洞位置定位为例,本发明实施例可将Andorid的安装文件(APK)反编译为Java代码或者Smali代码;对反编译后的Java代码或者Smali代码进行静态检测分析,确定反编译后的Java代码或者Smali代码中的漏洞代码(如检测到的漏洞类名、方法名和变量名);根据设定的映射文件,将漏洞代码反混淆处理为Andorid系统的开发代码(如Andorid系统的源Java代码等);以所得到的开发代码的所在文件、所在类、所在函数等,来唯一认定漏洞的所在位置,从而保证不同版本的同一应用的漏洞所在位置相一致,减少重复认定漏洞位置的情况。
下面对本发明实施例提供的应用的漏洞位置定位的一个应用例进行介绍,如图5所示,本发明实施例可设置漏洞检测服务器10;
开发人员需对某一应用进行漏洞检测时,可将应用安装文件和相应的映射文件提交至漏洞检测服务器10;
漏洞检测服务器10可对对应用的安装文件进行反编译,得到反编译后的代码;对所述反编译后的代码进行漏洞分析,确定漏洞代码;根据设定的映射文件对所述漏洞代码进行反混淆处理,得到所述漏洞代码对应的开发代码,以所得到的开发代码定位所述应用的漏洞位置;同时生成具有该开发代码所定位的漏洞位置的安全检测报告。安全检测报告中对应用的漏洞位置作了唯一认定,可以减小后续重复认定应用的漏洞位置,及重复生成安全检测报告的操作。
上文介绍了本发明实施例提供的代码处理方法在应用的漏洞位置定位中的应用,显然本发明实施例提供的代码处理方法的应用不限于应用的漏洞位置定位,还可适用于其他的代码分析场景;根据实际的代码分析场景,本发明实施例还可设置相应的代码分析逻辑,以对通过本发明实施例提供的代码处理方法所得到的开发代码进行分析。
下面对本发明实施例提供的代码处理装置进行介绍,下文描述的代码处理装置可与上文描述的代码处理方法相互对应参照。
图6为本发明实施例提供的代码处理装置的结构框图,该代码处理装置可应用于计算设备中,计算设备可如手机、笔记本电脑、PC(个人计算机)等用户设备,也可以如服务器等网络侧设备;参照图6,该代码处理装置可以包括:
反编译模块100,用于对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
目标代码确定模块200,用于确定所述反编译后的代码中需分析的目标代码;
反混淆模块300,用于根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。
可选的,图7示出了本发明实施例提供的代码处理装置的另一结构,结合图6和图7所示,该代码处理装置还可以包括:
映射文件生成模块400,用于在对所述应用的开发代码进行代码混淆处理时,确定混淆处理的初始结果,所述初始结果包括混淆代码和混淆过程参数;其中,所述混淆过程参数用于标识混淆代码唯一对应的开发代码;隐藏所述混淆过程参数,建立开发代码与对应的混淆代码的映射关系。
对应的,图8示出了本发明实施例提供的反混淆模块300的一种可选结构,参照图8,反混淆模块300可以包括:
第一反混淆执行单元310,用于根据所建立的开发代码与对应的混淆代码的映射关系,确定所述目标代码所对应的开发代码。
图9示出了本发明实施例提供的反混淆模块300的另一种可选结构,参照图9,反混淆模块300可以包括:
第二反混淆执行单元320,用于恢复所述目标代码对应的混淆过程参数,根据所述目标代码及对应的混淆过程参数,将所述目标代码反混淆处理为对应的开发代码。
可选的,本发明实施例提供的代码处理装置可应用于应用的漏洞位置定位场景,对应的,所述目标代码为所述应用中的漏洞代码;
图10示出了本发明实施例提供的目标代码确定模块200的一种可选结构,参照图10,目标代码确定模块200可以包括:
漏洞代码确定单元210,用于对所述反编译后的代码进行漏洞分析,确定漏洞代码。
可选的,图11示出了本发明实施例提供的代码处理装置的再一结构框图,结合图6和图11所示,该代码处理装置还可以包括:
位置定位模块500,用于以所得到的所述漏洞代码对应的开发代码定位所述应用的漏洞位置。
可选的,可以所得到的开发代码的所在文件、所在类、所在函数定位所述应用的漏洞位置;显然,根据实际情况,也可能仅是采用开发代码的所在文件、所在类、所在函数中的至少一项来定位应用的漏洞位置。
可选的,漏洞代码确定单元210在确定漏洞代码时具体可用于,根据设定的漏洞代码特征,对所述反编译后的代码进行扫描;将扫描得到的所述反编译后的代码中,与所述漏洞代码特征对应的代码,确定为漏洞代码。
采用本发明实施例提供的代码处理装置,可得到应用的开发代码,通过分析所得到的开发代码可较为容易的对应用安装文件中的代码进行分析,并且分析结果的准确性较高;因此本发明实施例提供的代码处理装置,可为减小应用安装文件的代码分析难度,提升分析结果的准确性提供基础,使得后续对应用的安装文件进行代码分析时,可降低分析难度,且提升分析结果的准确性。
本发明实施例还提供一种计算设备,该计算设备可以包括上述所述的代码处理装置。
图12示出了本发明实施例提供的计算设备的硬件结构框图,该计算设备可以如手机、笔记本电脑、PC(个人计算机)等用户设备,也可以如服务器等网络侧设备;参照图12,该计算设备可以包括:处理器1,通信接口2,存储器3和通信总线4;
其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1,用于执行程序;
存储器3,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:
对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
确定所述反编译后的代码中需分析的目标代码;
根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (7)

1.一种代码处理方法,其特征在于,包括:
对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
确定所述反编译后的代码中需分析的目标代码;
根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系;
其中,所述映射文件的设定过程包括:
在对所述应用的开发代码进行代码混淆处理时,确定混淆处理的初始结果,所述初始结果包括混淆代码和混淆过程参数;其中,所述混淆过程参数用于标识混淆代码唯一对应的开发代码,所述混淆过程参数包括:混淆返回值、混淆使用参数类型、混淆使用参数数量;
隐藏所述混淆过程参数,建立开发代码与对应的混淆代码的映射关系;
其中,所述根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码包括:
根据所建立的开发代码与对应的混淆代码的映射关系,确定所述目标代码所对应的开发代码;
或,恢复所述目标代码对应的混淆过程参数,根据所述目标代码及对应的混淆过程参数,将所述目标代码反混淆处理为对应的开发代码,所述混淆过程参数唯一标识的目标代码对应所述开发代码。
2.根据权利要求1所述的代码处理方法,其特征在于,所述目标代码为所述应用中的漏洞代码;
确定所述反编译后的代码中需分析的目标代码包括:
对所述反编译后的代码进行漏洞分析,确定漏洞代码;
所述方法还包括:
以所得到的所述漏洞代码对应的开发代码定位所述应用的漏洞位置。
3.根据权利要求2所述的代码处理方法,其特征在于,所述对所述反编译后的代码进行漏洞分析,确定漏洞代码包括:
根据设定的漏洞代码特征,对所述反编译后的代码进行扫描;
将扫描得到的所述反编译后的代码中,与所述漏洞代码特征对应的代码,确定为漏洞代码。
4.一种代码处理装置,其特征在于,包括:
反编译模块,用于对应用的安装文件进行反编译,得到反编译后的代码,所述反编译后的代码处于代码混淆状态;
目标代码确定模块,用于确定所述反编译后的代码中需分析的目标代码;
反混淆模块,用于根据设定的映射文件对所述目标代码进行反混淆处理,得到所述目标代码对应的开发代码;其中,所述映射文件记录有开发代码和对所述开发代码进行混淆处理后的混淆代码的映射关系;
映射文件生成模块,用于在对所述应用的开发代码进行代码混淆处理时,确定混淆处理的初始结果,所述初始结果包括混淆代码和混淆过程参数;其中,所述混淆过程参数用于标识混淆代码唯一对应的开发代码,所述混淆过程参数包括:混淆返回值、混淆使用参数类型、混淆使用参数数量;隐藏所述混淆过程参数,建立开发代码与对应的混淆代码的映射关系;
其中,所述反混淆模块包括:
第一反混淆执行单元,用于根据所建立的开发代码与对应的混淆代码的映射关系,确定所述目标代码所对应的开发代码;
或,第二反混淆执行单元,用于恢复所述目标代码对应的混淆过程参数,根据所述目标代码及对应的混淆过程参数,将所述目标代码反混淆处理为对应的开发代码,所述混淆过程参数唯一标识的目标代码对应所述开发代码。
5.根据权利要求4所述的代码处理装置,其特征在于,所述目标代码为所述应用中的漏洞代码;所述目标代码确定模块包括:
漏洞代码确定单元,用于对所述反编译后的代码进行漏洞分析,确定漏洞代码;
所述代码处理装置还包括:
位置定位模块,用于以所得到的所述漏洞代码对应的开发代码定位所述应用的漏洞位置。
6.一种计算设备,其特征在于,包括权利要求4-5任一项所述的代码处理装置。
7.一种存储介质,其特征在于,用于存储包括权利要求1-3任一项所述的代码处理方法。
CN201510232568.0A 2015-05-08 2015-05-08 一种代码处理方法、装置及计算设备 Active CN106203007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510232568.0A CN106203007B (zh) 2015-05-08 2015-05-08 一种代码处理方法、装置及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510232568.0A CN106203007B (zh) 2015-05-08 2015-05-08 一种代码处理方法、装置及计算设备

Publications (2)

Publication Number Publication Date
CN106203007A CN106203007A (zh) 2016-12-07
CN106203007B true CN106203007B (zh) 2020-03-03

Family

ID=57459895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510232568.0A Active CN106203007B (zh) 2015-05-08 2015-05-08 一种代码处理方法、装置及计算设备

Country Status (1)

Country Link
CN (1) CN106203007B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664389B (zh) * 2017-03-31 2023-03-31 腾讯科技(深圳)有限公司 一种测试方法、装置及终端
CN107766702A (zh) * 2017-05-10 2018-03-06 平安科技(深圳)有限公司 代码混淆方法、装置及计算机可读存储介质
CN108153518B (zh) * 2017-12-25 2021-02-26 厦门市美亚柏科信息股份有限公司 一种java程序反混淆方法及终端
CN108804883B (zh) * 2018-04-27 2020-06-19 北京奇艺世纪科技有限公司 一种混淆代码的运行方法和装置
CN109144876B (zh) * 2018-08-30 2021-02-19 百度在线网络技术(北京)有限公司 一种自动化测试方法、装置、服务器及存储介质
CN111752819B (zh) * 2019-03-29 2024-04-05 广州市百果园信息技术有限公司 一种异常监控方法、装置、系统、设备和存储介质
CN110135129B (zh) * 2019-04-12 2023-04-07 平安科技(深圳)有限公司 代码段保护方法、装置、计算机设备和存储介质
CN112231520A (zh) * 2019-07-15 2021-01-15 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质
CN111191197A (zh) * 2019-12-31 2020-05-22 北京指掌易科技有限公司 保护移动端应用和移动端应用的运行方法和装置
CN111814120B (zh) * 2020-07-10 2021-04-23 北京嘀嘀无限科技发展有限公司 程序反混淆处理方法、装置、设备及存储介质
CN112016059A (zh) * 2020-08-31 2020-12-01 百度时代网络技术(北京)有限公司 用于处理数据的方法、装置、设备以及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176337B2 (en) * 2008-03-12 2012-05-08 Apple Inc. Computer object code obfuscation using boot installation
CN101393521B (zh) * 2008-11-13 2012-04-25 上海交通大学 Windows应用程序内部固化数据的提取系统
CN103377326B (zh) * 2012-04-13 2017-07-11 腾讯科技(北京)有限公司 一种动态网页程序代码的混淆加密方法及装置
CN104573416B (zh) * 2013-10-25 2018-07-17 腾讯科技(深圳)有限公司 一种生成应用安装包、执行应用的方法及装置

Also Published As

Publication number Publication date
CN106203007A (zh) 2016-12-07

Similar Documents

Publication Publication Date Title
CN106203007B (zh) 一种代码处理方法、装置及计算设备
Wermke et al. A large scale investigation of obfuscation use in google play
CN111353146B (zh) 应用程序敏感权限的检测方法、装置、设备和存储介质
CN104680039B (zh) 一种应用程序安装包的数据保护方法及装置
CN111027070B (zh) 恶意应用检测方法、介质、设备及装置
US20160110543A1 (en) Apparatus and method for detecting malicious application based on visualization similarity
CN106656944B (zh) 手持移动设备滑动验证的方法及装置
CN108763951B (zh) 一种数据的保护方法及装置
CN109062667B (zh) 一种模拟器识别方法、识别设备及计算机可读介质
US11250110B2 (en) Method to secure a software code
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
JP2011516953A (ja) 自動解析を採用する改竄防止システム
CN113961919B (zh) 恶意软件检测方法和装置
JP2016525760A (ja) 無関係なコードの特定
CN105760758A (zh) 静态检测应用程序的检测系统及方法、及计算机程序产品
US10229273B2 (en) Identifying components for static analysis of software applications
CN114021142A (zh) 一种安卓应用程序漏洞检测方法
CN109818972B (zh) 一种工业控制系统信息安全管理方法、装置及电子设备
CN110414218B (zh) 内核检测方法、装置、电子设备及存储介质
KR101557455B1 (ko) 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법
CN109241706B (zh) 基于静态胎记的软件抄袭检测方法
US20210133299A1 (en) Method to secure a software code
CN110719274B (zh) 网络安全控制方法、装置、设备及存储介质
Zhou et al. LogPruner: detect, analyze and prune logging calls in Android apps
CN106897622A (zh) 验证应用漏洞的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant