CN107038371A - 一种可执行文件的处理方法、装置、装置和系统 - Google Patents
一种可执行文件的处理方法、装置、装置和系统 Download PDFInfo
- Publication number
- CN107038371A CN107038371A CN201510454861.1A CN201510454861A CN107038371A CN 107038371 A CN107038371 A CN 107038371A CN 201510454861 A CN201510454861 A CN 201510454861A CN 107038371 A CN107038371 A CN 107038371A
- Authority
- CN
- China
- Prior art keywords
- executable file
- code
- encryption
- changed
- point code
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Telephone Function (AREA)
Abstract
本发明实施例公开了一种可执行文件的处理方法、装置和系统;本发明实施例采用在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件,对该加密后可执行文件的关键点代码进行预设代码格式转换,得到转换后关键点代码,然后截获回写进程,并通过该回写进程对转换后关键点代码进行回写;采用该方案可以更好地对代码进行加固,在保护代码,提高数据安全性的同时,提高运行效率。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种可执行文件的处理方法、装置和系统。
背景技术
可执行文件,指的是可以由操作系统加载执行的文件,在不同的操作系统环境下,可执行文件的呈现方式不一样,例如,在安卓(Android)系统下,可执行文件可以是dex文件。由于终端应用的指令多数都是编译在可执行文件中,因此,如何对可执行文件进行加固,也成为防止代码被破解、以及提高代码安全的一个重要环节。
在现有技术中,一般会采用整体加密的方式来对可执行文件进行加固;例如,以dex文件为例,一般会对dex文件进行整体加密,然后在运行时,由安卓运行时刻(ART,Android runtime)对其进行转换操作,包括进行解密以及转换成运行验收测试(oat,Operational Acceptance Testing)文件。
在对现有技术的研究和实践过程中,本发明的发明人发现,在现有的方案中,由于在转换的过程中,以及解密后内存中均存有原始代码,因此,仍然存在原始代码被拷贝被反编译的可能性,其安全性并不高,而且,由于运行时需要转换和解密大量的数据,所以,其运行效率也较低。
发明内容
本发明实施例提供一种可执行文件的处理方法、装置和系统,可以更好地对代码进行加固,在保护代码,提高数据安全性的同时,提高运行效率。
本发明实施例提供一种可执行文件的处理方法,包括:
在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件;
确定所述加密后可执行文件的关键点代码;
对所述关键点代码进行预设代码格式转换,得到转换后关键点代码;
截获回写进程,并通过所述回写进程对转换后关键点代码进行回写。
相应的,本发明实施例还提供一种可执行文件的处理装置,包括:
截获单元,用于在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件;
确定单元,用于确定所述加密后可执行文件的关键点代码;
转换单元,用于对所述关键点代码进行预设代码格式转换,得到转换后关键点代码;
回写单元,用于截获回写进程,并通过所述回写进程对转换后关键点代码进行回写。
此外,本发明实施例还提供一种可执行文件的处理系统,包括本发明实施例所提供的任一种可执行文件的处理装置。
本发明实施例采用在进行预设代码格式转换,比如ART转换时,截获需要进行转换的加密后可执行文件,对该加密后可执行文件的关键点代码进行预设代码格式转换,得到转换后关键点代码,然后截获回写进程,并通过该回写进程对转换后关键点代码进行回写,从而过滤掉多余的预设代码格式转换,如ART转换,使得运行效率得到大大的提高;而且,由于在转换以及回写的过程中只涉及到部分代码,因此,在这过程以及内存中并不会存在有完整的转换好的可执行文件的代码,所以,降低了原始代码被拷贝并进行反编译的几率,可以更好地保护代码,提高数据安全性;总而言之,采用该方法可以更好地对代码进行加固,在保护代码,提高数据安全性的同时,提高运行效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的可执行文件的处理方法的流程图;
图2a是本发明实施例提供的可执行文件的处理方法中各部分的关系示意图;
图2b是本发明实施例提供的可执行文件的处理方法的另一流程图;
图3是本发明实施例提供的可执行文件的处理装置的结构示意图;
图4是本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种可执行文件的处理方法、装置和系统。以下将分别进行详细说明。
实施例一、
本实施例将从可执行文件的处理装置的角度进行描述,该可执行文件的处理装置具体可以集成在移动终端等设备中,该移动终端具体可以为手机或平板电脑等。
一种可执行文件的处理方法,包括:在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件;确定该加密后可执行文件的关键点代码;对该关键点代码进行预设代码格式转换,得到转换后关键点代码;截获回写进程,并通过该回写进程对转换后关键点代码进行回写(Write-Back)。
如图1所示,该可执行文件的处理方法的流程具体可以如下:
101、在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件。
其中,预设代码格式转换指的是将软件的代码转换成本地代码保存在移动终端上,运行时无需虚拟机翻译即可由中央处理器(CPU,Central Processing Unit)执行的技术,具体的代码格式可以根据实际应用的需求进行设置,例如,该代码格式转换可以是安卓运行时刻(ART,Androidruntime)转换。
例如,具体可以获取加密后可执行文件的预设代码格式请求,如ART转换请求,然后根据该预设代码格式请求,如ART转换请求截获对应的加密后可执行文件。
其中,截获的方式可以有多种,比如,可以利用预载(preload)特性来进行截获,即步骤“截获需要进行转换的加密后可执行文件”可以如下:
利用预载特性截获需要进行转换的加密后可执行文件的调用进程,根据截获的调用进程调用该加密后可执行文件。
其中,该加密后可执行文件具体可以由服务端进行加密,也可以由本端进行加密,其中,加密的方式可以有多种,具体可以根据实际应用的需求进行设置,例如,可以如下:
在接收到加密请求后,根据该加密请求通过扫描该移动终端应用的可执行文件,以获取需要加密的代码,然后对该需要加密的代码进行加密,等等。
102、确定该加密后可执行文件的关键点代码。
由于在对加密后可执行文件进行预设代码格式转换,如ART转换时,是逐个函数进行转换的,因此,确定该加密后可执行文件中需要进行转换的函数,便可以获取到相应的关键点代码,即步骤“确定该加密后可执行文件的关键点代码”具体可以包括:
确定该加密后可执行文件中需要进行转换的函数,根据该函数获取对应的代码,即可得到该加密后可执行文件的关键点代码。
103、对该关键点代码进行预设代码格式转换,如ART转换,得到转换后关键点代码。
例如,具体可以对该关键点代码进行解密,得到解密后关键点代码,将该解密后关键点代码转换成该预设代码格式转换(如ART转换)对应的文件格式,得到转换后关键点代码。
其中,预设代码格式转换对应的文件格式可以根据实际应用的需求而定,比如,以ART转换为例,对于安卓系统而言,可执行文件一般可以为dex文件,而该ART转换对应的文件格式一般为oat,即这里的ART转换指的是对加密后dex文件进行解密,并转换成oat文件。
104、截获回写进程,并通过该回写进程对转换后关键点代码进行回写。
其中,同样可以利用预载(preload)特性来进行截获,即步骤“截获回写进程,并通过该回写进程对转换后关键点代码进行回写”具体可以如下:
利用预载特性截获回写进程,并通过该回写进程对转换后关键点代码进行回写。
由上可知,本实施例采用在进行预设代码格式转换(如ART转换)时,截获需要进行转换的加密后可执行文件,对该加密后可执行文件的关键点代码进行预设代码格式转换(如ART转换),得到转换后关键点代码,然后截获回写进程,并通过该回写进程对转换后关键点代码进行回写,从而过滤掉多余的预设代码格式转换(如ART转换),使得运行效率得到大大的提高;而且,由于在转换以及回写的过程中只涉及到部分代码,因此,在这过程以及内存中并不会存在有完整的转换好的可执行文件的代码,所以,降低了原始代码被拷贝并进行反编译的几率,可以更好地保护代码,提高数据安全性;总而言之,采用该方法可以更好地对代码进行加固,在保护代码,提高数据安全性的同时,提高运行效率。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以安卓系统,且该预设代码格式转换具体为ART转换为例进行说明。其中,该可执行文件的处理装置具体可以集成在移动终端中,而该可执行文件具体可以为dex文件等。
如图2a所示,在该移动终端中,除了本发明实施例所提供的可执行文件的处理装置之外,还包括转换模块,如下:
转换模块,用于在接收到关于加的dex文件的ART转换请求时,启动ART转换,并对该加密dex文件进行ART转换,即将加密dex文件进行解密,并转换成oat文件,然后回写转换好的文件,即oat文件。
由图2a可知,当转换模块对加密dex文件进行ART转换时,该可执行文件的处理装置被启动,截获转换模块中的该加密dex文件,确定该加密dex文件的关键点代码,并对该关键点代码进行ART转换,得到转换后关键点代码,然后在转换模块回写转换好的文件时,截获回写进程,并通过该回写进程对转换后关键点代码进行回写,使得回写过程中只写入转换后关键点代码,这样,在转换以及回写的过程中就不会出现完整的原始代码,从而达到保护代码安全的目的。
以下将对其执行流程进行详细说明。
如图2b所示,一种可执行文件的处理方法,包括:
201、转换模块接收到关于加密dex文件的ART转换请求时,启动ART转换,并对该加密dex文件进行ART转换。
其中,该加密后可执行文件具体可以由服务端进行加密,也可以由本端进行加密,其中,加密的方式可以有多种,具体可以根据实际应用的需求进行设置,在此不再赘述。
202、可执行文件的处理装置利用预载特性截获需要进行转换的加密后dex文件的调用进程。
203、可执行文件的处理装置根据截获的调用进程调用该加密后dex文件。
204、可执行文件的处理装置确定该加密后dex文件中需要进行转换的函数,根据该函数获取对应的代码,得到该加密后dex文件的关键点代码。
205、可执行文件的处理装置对该关键点代码进行解密,得到解密后关键点代码,将该解密后关键点代码转换成该ART转换对应的文件格式,得到转换后关键点代码。
其中,ART转换对应的文件格式可以根据实际应用的需求而定,比如,具体可以为oat格式,等等。
206、转换模块在回写转换好的文件时,该可执行文件的处理装置利用预载特性截获回写进程,并通过该回写进程对转换后关键点代码进行回写。
由上可知,本实施例采用在进行ART转换时,由可执行文件的处理装置截获需要进行转换的加密后可执行文件,并对该加密后可执行文件的关键点代码进行ART转换,得到转换后关键点代码,然后截获回写进程,通过该回写进程对转换后关键点代码进行回写,从而过滤掉多余的ART转换,使得运行效率得到大大的提高;而且,由于在转换以及回写的过程中只涉及到部分代码,因此,在这过程以及内存中并不会存在有完整的转换好的可执行文件的代码,所以,降低了原始代码被拷贝并进行反编译的几率,可以更好地保护代码,提高数据安全性;总而言之,采用该方案可以更好地对代码进行加固,在保护代码,提高数据安全性的同时,提高运行效率。
实施例三、
为了更好地实施以上方法,本发明实施例还提供一种可执行文件的处理装置,如图3所示,该可执行文件的处理装置可以包括截获单元301、确定单元302、转换单元303和回写单元304,如下:
(1)截获单元301;
截获单元301,用于在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件。
例如,截获单元301,具体可以用于获取加密后可执行文件的预设代码格式转换请求,然后根据该预设代码格式转换请求截获对应的加密后可执行文件。
其中,预设代码格式转换指的是将软件的代码转换成本地代码保存在移动终端上,运行时无需虚拟机翻译即可由CPU执行的技术,具体的代码格式可以根据实际应用的需求进行设置,例如,该代码格式转换可以是ART转换,则此时,预设代码格式转换请求具体可以为ART转换请求,在此不再赘述。
其中,截获的方式可以有多种,比如,可以利用预载(preload)特性来进行截获,即具体可以如下:
利用预载特性截获需要进行转换的加密后可执行文件的调用进程,根据截获的调用进程调用该加密后可执行文件。
其中,该加密后可执行文件具体可以由服务端进行加密,也可以由本端(即该可执行文件的处理装置所在的设备)进行加密,其中,加密的方式可以有多种,具体可以根据实际应用的需求进行设置,例如,在接收到加密请求后,根据该加密请求通过扫描该移动终端应用的可执行文件,以获取需要加密的代码,然后对该需要加密的代码进行加密,等等。
(2)确定单元302;
确定单元302,用于确定该加密后可执行文件的关键点代码。
由于在对加密后可执行文件进行预设代码格式转换,如ART转换时,是逐个函数进行转换的,因此,确定该加密后可执行文件中需要进行转换的函数,便可以获取到相应的关键点代码,即:
该确定单元302,具体可以用于确定该加密后可执行文件中需要进行转换的函数,根据该函数获取对应的代码,即可得到该加密后可执行文件的关键点代码。
(3)转换单元303;
转换单元303,用于对该关键点代码进行预设代码格式转换,得到转换后关键点代码,比如,可以用于对该关键点代码进行ART转换,得到转换后关键点代码,等等。
例如,该转换单元303,具体可以用于对该关键点代码进行解密,得到解密后关键点代码,将该解密后关键点代码转换成该预设代码格式转换,如ART转换对应的文件格式,得到转换后关键点代码。
其中,预设代码格式转换对应的文件格式可以根据实际应用的需求而定,比如,以ART转换为例,对于安卓系统而言,可执行文件一般可以为dex文件,而该ART转换对应的文件格式一般为oat,即这里的ART转换指的是对加密后dex文件进行解密,并转换成oat文件。
(4)回写单元304;
回写单元304,用于截获回写进程,并通过该回写进程对转换后关键点代码进行回写。
其中,同样可以利用预载(preload)特性来进行截获,即回写单元304,具体可以用于利用预载特性截获回写进程,并通过该回写进程对转换后关键点代码进行回写。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
该可执行文件的处理装置具体可以集成在移动终端等设备中,该移动终端具体可以为手机或平板电脑等。
由上可知,本实施例的可执行文件的处理装置的截获单元301可以在进行预设代码格式转换(如ART转换)时,截获需要进行转换的加密后可执行文件,并由转换单元303对该加密后可执行文件的关键点代码进行预设代码格式转换(如ART转换),得到转换后关键点代码,然后由回写单元304截获回写进程,并通过该回写进程对转换后关键点代码进行回写,从而过滤掉多余的预设代码格式转换(如ART转换),使得运行效率得到大大的提高;而且,由于在转换以及回写的过程中只涉及到部分代码,因此,在这过程以及内存中并不会存在有完整的转换好的可执行文件的代码,所以,降低了原始代码被拷贝并进行反编译的几率,可以更好地保护代码,提高数据安全性;总而言之,采用该方案可以更好地对代码进行加固,在保护代码,提高数据安全性的同时,提高运行效率。
实施例四、
相应的,本发明实施例还提供一种可执行文件的处理系统,包括本发明实施例所提供的任一种可执行文件的处理装置,其中,该可执行文件的处理装置具体可参见实施例三,例如,具体可以如下:
可执行文件的处理装置,用于在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件;确定该加密后可执行文件的关键点代码;对该关键点代码进行预设代码格式转换,得到转换后关键点代码;截获回写进程,并通过该回写进程对转换后关键点代码进行回写。
其中,截获的方式可以有多种,比如,可以利用预载(preload)特性来进行截获,等等。
由于在对加密后可执行文件进行预设代码格式转换时,是逐个函数进行转换的,因此,确定该加密后可执行文件中需要进行转换的函数,便可以获取到相应的关键点代码,即:
可执行文件的处理装置,具体可以用于确定该加密后可执行文件中需要进行转换的函数,根据该函数获取对应的代码,即可得到该加密后可执行文件的关键点代码。
此外,该可执行文件的处理系统还可以包括其他的模块,比如,还可以包括转换模块,如下:
转换模块,用于在接收到关于加密可执行文件的预设代码格式转换请求(比如ART转换请求)时,启动预设代码格式转换(比如ART转换),并对该加密可执行文件进行预设代码格式转换(比如ART转换),然后回写转换好的文件。
则此时,该可执行文件的处理装置,具体可以用于当转换模块对加密可执行文件进行预设代码格式转换(比如ART转换)时,截获需要进行转换的加密后可执行文件;确定该加密后可执行文件的关键点代码;对该关键点代码进行预设代码格式转换(比如ART转换),得到转换后关键点代码;截获转换模块的回写进程,并通过该回写进程对转换后关键点代码进行回写。
以上各个部分的具体实施可参见前面的实施例,在此不再赘述。
由于该可执行文件的处理系统可以包括本发明实施例所提供的任一种可执行文件的处理装置,因此,可以实现本发明实施例所提供的任一种可执行文件的处理装置所能实现的有益效果,详见前面的实施例,在此不再赘述。
实施例五、
相应的,本发明实施例还提供一种移动终端,如图4所示,该移动终端可以包括射频(RF,Radio Frequency)电路401、包括有一个或一个以上计算机可读存储介质的存储器402、输入单元403、显示单元404、传感器405、音频电路406、无线保真(WiFi,Wireless Fidelity)模块407、包括有一个或者一个以上处理核心的处理器408、以及电源409等部件。本领域技术人员可以理解,图4中示出的移动终端结构并不构成对移动终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路401可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器408处理;另外,将涉及上行的数据发送给基站。通常,RF电路401包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber IdentityModule)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路401还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division MultipleAccess)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,ShortMessaging Service)等。
存储器402可用于存储软件程序以及模块,处理器408通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器408和输入单元403对存储器402的访问。
输入单元403可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元403可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器408,并能接收处理器408发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元403还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元404可用于显示由用户输入的信息或提供给用户的信息以及移动终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元404可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,OrganicLight-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器408以确定触摸事件的类型,随后处理器408根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图4中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
移动终端还可包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在移动终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于移动终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路406、扬声器,传声器可提供用户与移动终端之间的音频接口。音频电路406可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路406接收后转换为音频数据,再将音频数据输出处理器408处理后,经RF电路401以发送给比如另一移动终端,或者将音频数据输出至存储器402以便进一步处理。音频电路406还可能包括耳塞插孔,以提供外设耳机与移动终端的通信。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块407可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块407,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器408是移动终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行移动终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器408可包括一个或多个处理核心;优选的,处理器408可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器408中。
移动终端还包括给各个部件供电的电源409(比如电池),优选的,电源可以通过电源管理系统与处理器408逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源409还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,移动终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,移动终端中的处理器408会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器408来运行存储在存储器402中的应用程序,从而实现各种功能:
在进行预设代码格式转换(比如ART转换)时,截获需要进行转换的加密后可执行文件;确定该加密后可执行文件的关键点代码;对该关键点代码进行预设代码格式转换(比如ART转换),得到转换后关键点代码;截获回写进程,并通过该回写进程对转换后关键点代码进行回写。
其中,截获的方式可以有多种,比如,可以利用预载(preload)特性来进行截获,等等。
由于在对加密后可执行文件进行预设代码格式转换(比如ART转换)时,是逐个函数进行转换的,因此,确定该加密后可执行文件中需要进行转换的函数,便可以获取到相应的关键点代码,即操作“截获需要进行转换的加密后可执行文件”具体可以如下:
确定该加密后可执行文件中需要进行转换的函数,根据该函数获取对应的代码,即可得到该加密后可执行文件的关键点代码。
由上可知,本实施例的移动终端在进行预设代码格式转换(比如ART转换)时,可以截获需要进行转换的加密后可执行文件,并对该加密后可执行文件的关键点代码进行预设代码格式转换(比如ART转换),得到转换后关键点代码,然后截获回写进程,通过该回写进程对转换后关键点代码进行回写,从而过滤掉多余的预设代码格式转换(比如ART转换),使得运行效率得到大大的提高;而且,由于在转换以及回写的过程中只涉及到部分代码,因此,在这过程以及内存中并不会存在有完整的转换好的可执行文件的代码,所以,降低了原始代码被拷贝并进行反编译的几率,可以更好地保护代码,提高数据安全性;总而言之,采用该方案可以更好地对代码进行加固,在保护代码,提高数据安全性的同时,提高运行效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种可执行文件的处理方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种可执行文件的处理方法,其特征在于,包括:
在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件;
确定所述加密后可执行文件的关键点代码;
对所述关键点代码进行预设代码格式转换,得到转换后关键点代码;
截获回写进程,并通过所述回写进程对转换后关键点代码进行回写。
2.根据权利要求1所述的方法,其特征在于,所述截获需要进行转换的加密后可执行文件,包括:
利用预载特性截获需要进行转换的加密后可执行文件的调用进程;
根据截获的调用进程调用所述加密后可执行文件。
3.根据权利要求1所述的方法,其特征在于,所述确定所述加密后可执行文件的关键点代码,包括:
确定所述加密后可执行文件中需要进行转换的函数;
根据所述函数获取所述加密后可执行文件的关键点代码。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述对所述关键点代码进行预设代码格式转换,得到转换后关键点代码;
对所述关键点代码进行解密,得到解密后关键点代码;
将所述解密后关键点代码转换成所述预设代码格式转换对应的文件格式,得到转换后关键点代码。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件,包括:
获取加密后可执行文件的预设代码格式转换请求;
根据所述预设代码格式转换请求截获对应的加密后可执行文件。
6.一种可执行文件的处理装置,其特征在于,
截获单元,用于在进行预设代码格式转换时,截获需要进行转换的加密后可执行文件;
确定单元,用于确定所述加密后可执行文件的关键点代码;
转换单元,用于对所述关键点代码进行预设代码格式转换,得到转换后关键点代码;
回写单元,用于截获回写进程,并通过所述回写进程对转换后关键点代码进行回写。
7.根据权利要求6所述的装置,其特征在于,包括:
所述截获单元,具体用于利用预载特性截获需要进行转换的加密后可执行文件的调用进程,根据截获的调用进程调用所述加密后可执行文件。
8.根据权利要求6所述的装置,其特征在于,
所述确定单元,具体用于确定所述加密后可执行文件中需要进行转换的函数,根据所述函数获取所述加密后可执行文件的关键点代码。
9.根据权利要求6至8任一项所述的装置,其特征在于,
所述转换单元,具体用于对所述关键点代码进行解密,得到解密后关键点代码,将所述解密后关键点代码转换成所述预设代码格式转换对应的文件格式,得到转换后关键点代码。
10.根据权利要求6至8任一项所述的装置,其特征在于,
所述截获单元,具体用于获取加密后可执行文件的预设代码格式转换请求,根据所述预设代码格式转换请求截获对应的加密后可执行文件。
11.一种可执行文件的处理系统,其特征在于,包括权利要求6至10任一项所述的可执行文件的处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510454861.1A CN107038371B (zh) | 2015-07-29 | 2015-07-29 | 一种可执行文件的处理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510454861.1A CN107038371B (zh) | 2015-07-29 | 2015-07-29 | 一种可执行文件的处理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107038371A true CN107038371A (zh) | 2017-08-11 |
CN107038371B CN107038371B (zh) | 2020-01-31 |
Family
ID=59532346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510454861.1A Active CN107038371B (zh) | 2015-07-29 | 2015-07-29 | 一种可执行文件的处理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107038371B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android系统的软件保护方法及系统 |
CN103745141A (zh) * | 2013-12-02 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | 智能终端android系统中防止应用程序反编译的方法 |
CN104200137A (zh) * | 2014-09-04 | 2014-12-10 | 成都卫士通信息产业股份有限公司 | 一种保护java程序自身安全的方法 |
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和系统 |
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
-
2015
- 2015-07-29 CN CN201510454861.1A patent/CN107038371B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android系统的软件保护方法及系统 |
CN103745141A (zh) * | 2013-12-02 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | 智能终端android系统中防止应用程序反编译的方法 |
CN104200137A (zh) * | 2014-09-04 | 2014-12-10 | 成都卫士通信息产业股份有限公司 | 一种保护java程序自身安全的方法 |
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和系统 |
CN104715196A (zh) * | 2015-03-27 | 2015-06-17 | 北京奇虎科技有限公司 | 智能手机应用程序的静态分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107038371B (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2628488C2 (ru) | Способ, терминальное устройство и сервер для передачи данных nfc | |
CN104618217B (zh) | 分享资源的方法、终端、服务器及系统 | |
CN103400076B (zh) | 一种移动终端上的恶意软件检测方法、装置和系统 | |
CN103616981B (zh) | 应用处理方法、装置及移动终端 | |
EP3200487B1 (en) | Message processing method and apparatus | |
US10944558B2 (en) | Key storing method, key managing method and apparatus | |
CN103345602B (zh) | 一种客户端代码完整性检测方法、装置和系统 | |
CN104519485B (zh) | 一种终端之间的通信方法、装置和系统 | |
CN104978176B (zh) | 应用程序接口调用方法、装置及计算机可读存储介质 | |
CN104978115A (zh) | 内容显示方法及装置 | |
CN104123120B (zh) | 一种浏览器页面数据过滤方法、装置和系统 | |
CN103716331B (zh) | 一种数值转移的方法、终端、服务器及系统 | |
CN106598584A (zh) | 一种处理资源文件的方法、装置和系统 | |
CN104519197A (zh) | 用户登录的方法、装置及终端设备 | |
CN106709282B (zh) | 资源文件解密方法及装置 | |
CN104657666A (zh) | 一种终端运行环境的优化方法及装置 | |
CN107590397A (zh) | 一种显示内嵌网页的方法和装置 | |
CN104965722A (zh) | 一种显示信息的方法及装置 | |
CN104639394B (zh) | 客户端使用人数的统计方法、装置和系统 | |
CN104753672B (zh) | 账号授权的方法、装置及终端 | |
CN105488433B (zh) | 终端密钥生成方法及装置 | |
CN106681884B (zh) | 一种系统调用的监控方法和装置 | |
CN104391629A (zh) | 定向发送消息的方法、显示消息的方法、服务器及终端 | |
CN106708555A (zh) | 一种加载插件的方法和装置 | |
CN104951324A (zh) | 一种获取应用调用关系表的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |