本发明专利技术涉及一种可执行文件的加固方法和装置。所述方法包括以下步骤:获取应用程序的可执行文件代码;将应用程序的可执行文件代码编译为汇编文件;从所述汇编文件中获取预先设定的需要保护的代码所对应的汇编代码;将防止反编译代码插入到所述汇编代码之前。上述可执行文件的加固方法和装置,通过将应用程序的可执行文件代码编译为汇编文件,将汇编文件中所需保护的代码所对应的汇编代码,并将防止反编译代码插入到该汇编代码前,反编译器对应用程序的可执行文件进行反编译时,使得反编译器难以反编译欲保护的代码,提高应用程序的安全性,防止应用程序被植入恶意指令,提高了用户数据的安全性,同时也不影响保护代码的正常执行。
【技术实现步骤摘要】
本专利技术涉及信息安全领域,特别是涉及一种可执行文件的加固方法和装置。
技术介绍
随着网络技术的发展,提供各种服务的应用程序应运而生。将应用程序安装在移动终端上,使用应用程序即可享受相应的服务,例如打车软件,将打车软件安装在移动终端上,启动运行打车软件,输入出发点和目的地生成叫车信息,发送该叫车信息,接收到该叫车信息的的士司机即可响应,进行服务。然而,应用程序安装在移动终端上,容易被反编译工具直接读取应用程序安装包里保存在libs目录下的可执行文件(如so文件),将其修改,重新打包,构建出大量的山寨应用,在修改时会植入恶意指令、广告插件等,导致用户的数据被窃取,用户数据的安全性低。
技术实现思路
基于此,有必要针对传统的应用程序易被修改植入恶意指令而导致用户数据被窃取的问题,提供一种可执行文件的加固方法,能防止应用程序被植入恶意指令,防止用户数据被窃取,提高用户数据的安全性。此外,还有必要提供一种可执行文件的加固装置,能防止应用程序被植入恶意指令,防止用户数据被窃取,提高用户数据的安全性。一种可执行文件的加固方法,包括以下步骤:获取应用程序的可执行文件代码;将应用程序的可执行文件代码编译为汇编文件;从所述汇编文件中获取预先设定的需要保护的代码所对应的汇编代码;将防止反编译代码插入到所述汇编代码之前。一种可执行文件的加固装置,包括:第一获取模块,用于获取应用程序的可执行文件代码;编译模块,用于将应用程序的可执行文件代码编译为汇编文件;第二获取模块,用于从所述汇编文件中获取预先设定的需要保护的代码所对应的汇编代码;插入模块,用于将防止反编译代码插入到所述汇编代码之前。上述可执行文件的加固方法和装置,通过将应用程序的可执行文件代码编译为汇编文件,将汇编文件中所需保护的代码所对应的汇编代码,并将防止反编译代码插入到该汇编代码前,反编译器对应用程序的可执行文件进行反编译时,使得反编译器难以反编译欲保护的代码,提高应用程序的安全性,防止应用程序被植入恶意指令,以及防止恶意指令窃取用户数据,提高了用户数据的安全性。此外,识别到模式切换指令后,对模式切换指令后的汇编代码识别为垃圾指令,从而误导反编译器,提高了应用程序的安全性,防止应用程序被植入恶意指令,以及防止恶意指令窃取用户数据,提高了用户数据的安全性,同时也不影响保护代码的正常执行。通过反编译器识别模式切换指令后,将模式切换指令后的正常代码识别为垃圾指令,能解决运行时解密后内存中存在原始的代码,反编译者从内存中把代码拷贝出来达到反编译的目的的问题,以及在正常执行代码的过程中,不需解密大量数据,降低了解密消耗,提高了运行效率。附图说明图1A为一个实施例中终端的内部结构示意图;图1B为一个实施例中服务器的内部结构示意图;图2为一个实施例中可执行文件的加固方法的流程图;图3为一个实施例中可执行文件的加固方法的运行原理示意图;图4为一个实施例中可执行文件的加固装置的内部结构框图;图5为另一个实施例中可执行文件的加固装置的内部结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。可以理解,本专利技术所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本专利技术的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。图1A为一个实施例中终端的内部结构示意图。如图1A所示,该终端包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,终端的存储介质存储有操作系统,还包括一种可执行文件的加固装置,该可执行文件的加固装置用于实现一种可执行文件的加固方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存为存储介质中的可执行文件的加固装置的运行提供环境,网络接口用于与服务器进行网络通信,如发送应用程序安装包的下载请求至服务器,接收服务器返回的应用程序安装包等。该终端可以是手机、平板电脑或者个人数字助理。本领域技术人员可以理解,图1A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。图1B为一个实施例中服务器的内部结构示意图。如图1B所示,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质存储有操作系统、数据库和可执行文件的加固装置,数据库中存储有应用程序的安装包,该可执行文件的加固装置用于实现适用于服务器的一种可执行文件的加固方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的可执行文件的加固装置的运行提供环境。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的应用程序安装包的下载请求以及向终端返回应用程序的安装包等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图1B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。因反编译器对应用程序的安装包中的代码按照代码顺序依次进行识别后,从而将应用程序的可执行文件转换成可阅读代码,然后再将反编译生成的可阅读代码加入恶意指令或进行篡改等得到新的代码,通过对新的代码重新进行打包生成新的应用程序的安装包,该新的应用程序的安装包被下载在移动终端上,并安装在移动终端上后,新的应用程序的安装包运行于移动终端上,将窃取用户的数据,导致应用程序的安装包不安全和用户数据也不安全。为此,通过在可执行文件的汇编代码之前插入防止反编译的代码(如插入跳转指令和模式切换指令),如此反编译器将无法对应用程序的可执行文件的代码进行反编译,提高了应用程序代码的安全性,防止窃取用户数据,提高了用户数据的安全性。加固是指对应用程序的安装包进行一系列的保护工作,输出另一个安装包,防止应用程序被反编译、恶意篡改、保护应用数据不被窃取及其它重打包可造成的恶意攻击等。图2为一个实施例中可执行文件的加固方法的流程图。图2中的可执行文件的加固方法运行于移动终端上。如图2所示,一种可执行文件的加固方法,包括以下步骤:步骤202,获取应用程序的可执行文件代码。具体地,应用程序是指运行于移动终端上的应用软件。该移动终端可为智能手机、平板电脑、个人数字助理等。应用程序的核心算法代码几乎都保存在可执行文件SO里,因此,获取应用程序的可执行文件代码。SO(SharedObject)文件为用户层的动态链接库。在移动终端上可安装Android系统或IOS系统等。应用程序安装在移动终端上,并运行于Android系统或IOS系统下。步骤204,将应用程序的可执行文件代码编译为汇编文件。具体地,将应用程序的可执行文件SO的C++代码编本文档来自技高网...
【技术保护点】
一种可执行文件的加固方法,包括以下步骤:获取应用程序的可执行文件代码;将应用程序的可执行文件代码编译为汇编文件;从所述汇编文件中获取预先设定的需要保护的代码所对应的汇编代码;将防止反编译代码插入到所述汇编代码之前。
【技术特征摘要】
1.一种可执行文件的加固方法,包括以下步骤:获取应用程序的可执行文件代码;将应用程序的可执行文件代码编译为汇编文件;从所述汇编文件中获取预先设定的需要保护的代码所对应的汇编代码;将防止反编译代码插入到所述汇编代码之前。2.根据权利要求1所述的方法,其特征在于,所述将防止反编译代码插入到所述汇编代码之前的步骤包括:将模式切换指令插入到所述汇编代码之前,以及将跳转指令插入到所述模式切换指令之前。3.根据权利要求1或2所述的方法,其特征在于,所述预先设定的需要保护的代码为全部的代码或预先指定的部分代码。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取可执行文件的运行指令;根据所述运行指令运行后,当运行到所述跳转指令时跳过所述模式切换指令,直接运行模式切换指令后的汇编代码。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取反编译指令;根据所述反编译指令依次反编译所述跳转指令、模式切换指令,并将所述模式切换指令后的汇编代码识别为垃圾指令。6.一种可执行文件的加固装置,其特征在于,包括:第一获取模块...
【专利技术属性】
技术研发人员:蒋鑫,蒋宁波,王正,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。