CN113987471A - 可执行文件执行方法、装置、电子设备和计算机可读介质 - Google Patents
可执行文件执行方法、装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN113987471A CN113987471A CN202111275057.9A CN202111275057A CN113987471A CN 113987471 A CN113987471 A CN 113987471A CN 202111275057 A CN202111275057 A CN 202111275057A CN 113987471 A CN113987471 A CN 113987471A
- Authority
- CN
- China
- Prior art keywords
- executable file
- shell
- encrypted code
- executable
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000006870 function Effects 0.000 claims abstract description 47
- 230000004044 response Effects 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000012795 verification Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 23
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012856 packing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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
- G06F21/53—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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本公开的实施例公开了可执行文件执行方法、装置、电子设备和计算机可读介质。该方法的一具体实施方式包括:响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件;确定上述可执行文件是否为加壳可执行文件;响应于确定上述可执行文件为加壳可执行文件,调用反调试函数;将上述可执行文件中的加密代码节读取至内存;根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。该实施方式提高了可执行文件的安全性。
Description
技术领域
本公开的实施例涉及计算机技术领域,具体涉及可执行文件执行方法、装置、电子设备和计算机可读介质。
背景技术
随着计算机技术的快速发展,车载终端技术逐步应用于车辆,使得车辆朝着智能化方向发展。目前,在对车载终端的应用进行开发后,经常将可执行文件直接存储在车载终端中,以直接执行可执行文件。
然而,当采用上述方式对可执行文件进行执行操作时,经常会存在如下技术问题:
第一,直接执行可执行文件时,外部可截取正在运行的可执行文件的代码,导致可执行文件泄露,可执行文件的安全性较差;
第二,可执行文件被篡改后,不能自动重新获取可执行文件,且重新获取可执行文件时,外部可截取重新获取的可执行文件,导致可执行文件泄露,可执行文件的安全性较差。
发明内容
本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
本公开的一些实施例提出了可执行文件执行方法、装置、电子设备和计算机可读介质,来解决以上背景技术部分提到的技术问题中的一项或多项。
第一方面,本公开的一些实施例提供了一种可执行文件执行方法,应用于嵌入式车载终端,该方法包括:响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件;确定上述可执行文件是否为加壳可执行文件;响应于确定上述可执行文件为加壳可执行文件,调用反调试函数;将上述可执行文件中的加密代码节读取至内存;根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
第二方面,本公开的一些实施例提供了一种可执行文件执行装置,应用于嵌入式车载终端,装置包括:第一读取单元,被配置成响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件;确定单元,被配置成确定上述可执行文件是否为加壳可执行文件;调用单元,被配置成响应于确定上述可执行文件为加壳可执行文件,调用反调试函数;第二读取单元,被配置成将上述可执行文件中的加密代码节读取至内存;解壳单元,被配置成根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
第三方面,本公开的一些实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面任一实现方式所描述的方法。
第四方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现上述第一方面任一实现方式所描述的方法。
本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的可执行文件执行方法,可执行文件的安全性有所提高。具体来说,造成可执行文件的安全性较差的原因在于:直接执行可执行文件时,外部可截取正在运行的可执行文件的代码,导致可执行文件泄露,可执行文件的安全性较差。基于此,本公开的一些实施例的可执行文件执行方法,首先,响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件。然后,确定上述可执行文件是否为加壳可执行文件。之后,响应于确定上述可执行文件为加壳可执行文件,调用反调试函数。由此,可以在当前需执行的可执行文件为加密后的加壳可执行文件时,通过调用反调试函数对当前进程进行反调试。其次,将上述可执行文件中的加密代码节读取至内存。最后,根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。由此,可以在对当前进程进行反调试后,根据加密可执行文件的加密算法所对应的解密函数,对加密代码节包括的每个加密代码段解密后运行。也因为在运行解密后的加密代码段时,当前进程处于反调试状态,使得当前进程不能被二次附加,可以禁止外部动态调试当前进程。从而可以减少执行车载终端中存储的可执行文件时可执行文件被截取的风险。进而可以提高可执行文件的安全性。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,元件和元素不一定按照比例绘制。
图1是根据本公开的一些实施例的可执行文件执行方法的一个应用场景的示意图;
图2是根据本公开的可执行文件执行方法的一些实施例的流程图;
图3是根据本公开的可执行文件执行方法的另一些实施例的流程图;
图4是根据本公开的可执行文件执行装置的一些实施例的结构示意图;
图5是适于用来实现本公开的一些实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本公开。
图1是根据本公开一些实施例的可执行文件执行方法的一个应用场景的示意图。
在图1的应用场景中,首先,计算设备101可以响应于检测到用户对于目标应用程序的运行请求102,读取上述目标应用程序对应的可执行文件103。然后,计算设备101可以确定上述可执行文件103 是否为加壳可执行文件。之后,计算设备101可以响应于确定上述可执行文件103为加壳可执行文件,调用反调试函数104。其次,计算设备101可以将上述可执行文件103中的加密代码节105读取至内存。最后,计算设备101可以根据动态库中对应上述可执行文件103的解壳函数106,对上述加密代码节105包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
需要说明的是,上述计算设备101可以是硬件,也可以是软件。当计算设备为硬件时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。当计算设备体现为软件时,可以安装在上述所列举的硬件设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的计算设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的计算设备。
继续参考图2,示出了根据本公开的可执行文件执行方法的一些实施例的流程200。该可执行文件执行方法,应用于嵌入式车载终端,包括以下步骤:
步骤201,响应于检测到用户对于目标应用程序的运行请求,读取目标应用程序对应的可执行文件。
在一些实施例中,可执行文件执行方法的执行主体(例如图1所示的计算设备101)可以响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件。其中,上述目标应用程序可以为可在嵌入式车载终端内运行的任意应用程序。上述嵌入式车载终端可以为应用程序基于嵌入式开发平台开发的车载终端。例如,上述嵌入式开发平台可以为ARM(Advanced RISC Machine,进阶精简指令集机器)开发平台。上述运行请求可以为运行上述目标应用程序的指令。上述可执行文件可以为ELF(Executable andLinkable Format,可执行与可链接格式)文件。实践中,上述执行主体可以将上述可执行文件读取至内存中。
步骤202,确定可执行文件是否为加壳可执行文件。
在一些实施例中,上述执行主体可以确定上述可执行文件是否为加壳可执行文件。实践中,上述执行主体可以确定上述可执行文件中是否包含预设字符串,以确定上述可执行文件是否为加壳可执行文件。其中,上述预设字符串可以为表征上述可执行文件为加壳可执行文件的字符串。例如,上述预设字符串可以为“encrypted”。
步骤203,响应于确定可执行文件为加壳可执行文件,调用反调试函数。
在一些实施例中,上述执行主体可以响应于确定上述可执行文件为加壳可执行文件,调用反调试函数。其中,上述反调试函数可以为用于进行反调试当前进程的方法函数。例如,上述反调试函数可以为 ptrace(PTRACE_TRACEME)。
步骤204,将可执行文件中的加密代码节读取至内存。
在一些实施例中,上述执行主体可以将上述可执行文件中的加密代码节读取至内存。其中,上述加密代码节可以为上述可执行文件中加密后的代码节。上述代码节可以为上述可执行文件的“.text节”。
步骤205,根据动态库中对应可执行文件的解壳函数,对加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
在一些实施例中,上述执行主体可以根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。其中,上述动态库可以为动态链接库。例如,上述动态库可以为so动态库。上述解壳函数可以为对上述任意加密标记可执行文件进行加密时采用的加密算法的解密算法的方法函数实现。上述加密代码段可以为加密后的代码节包括的代码段。例如,上述代码段可以为“text段”。实践中,对于上述加密代码节包括的每个加密代码段,首先,上述执行主体可以通过上述解壳函数对上述加密代码段进行解密处理。然后,可以运行解密处理后的加密代码段。
可选地,上述执行主体可以响应于确定上述可执行文件为非加壳可执行文件,运行上述可执行文件包括的代码节中的各个代码段。由此,可以在当前可执行文件未经过加密处理时,直接运行上述可执行文件包括的代码节中的各个代码段。
本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的可执行文件执行方法,可执行文件的安全性有所提高。具体来说,造成可执行文件的安全性较差的原因在于:直接执行可执行文件时,外部可截取正在运行的可执行文件的代码,导致可执行文件泄露,可执行文件的安全性较差。基于此,本公开的一些实施例的可执行文件执行方法,首先,响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件。然后,确定上述可执行文件是否为加壳可执行文件。之后,响应于确定上述可执行文件为加壳可执行文件,调用反调试函数。由此,可以在当前需执行的可执行文件为加密后的加壳可执行文件时,通过调用反调试函数对当前进程进行反调试。其次,将上述可执行文件中的加密代码节读取至内存。最后,根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。由此,可以在对当前进程进行反调试后,根据加密可执行文件的加密算法所对应的解密函数,对加密代码节包括的每个加密代码段解密后运行。也因为在运行解密后的加密代码段时,当前进程处于反调试状态,使得当前进程不能被二次附加,可以禁止外部动态调试当前进程。从而可以减少执行车载终端中存储的可执行文件时可执行文件被截取的风险。进而可以提高可执行文件的安全性。
进一步参考图3,其示出了可执行文件执行方法的另一些实施例的流程300。该可执行文件执行方法的流程300,应用于嵌入式车载终端,包括以下步骤:
步骤301,响应于检测到用户对于目标应用程序的运行请求,读取目标应用程序对应的可执行文件。
步骤302,确定可执行文件是否为加壳可执行文件。
步骤303,响应于确定可执行文件为加壳可执行文件,调用反调试函数。
步骤304,将可执行文件中的加密代码节读取至内存。
在一些实施例中,步骤301-304的具体实现及所带来的技术效果可以参考图2对应的那些实施例中的步骤201-204,在此不再赘述。
步骤305,根据可执行文件中的加密代码节,生成第一加壳验证信息。
在一些实施例中,可执行文件执行方法的执行主体(例如图1所示的计算设备101)可以根据上述可执行文件中的加密代码节,生成第一加壳验证信息。实践中,上述执行主体可以生成上述加密代码节的MD5(Message-Digest 5,信息摘要)值作为第一加壳验证信息。
步骤306,从可执行文件中提取加壳验证信息作为第二加壳验证信息。
在一些实施例中,上述执行主体可以从上述可执行文件中提取加壳验证信息作为第二加壳验证信息。其中,上述加壳验证信息可以为对上述可执行文件的代码节进行加密处理后,根据加密后的代码节生成的MD5值。实践中,上述执行主体可以从上述可执行文件的文件末尾位置提取MD5(Message-Digest 5,信息摘要)值作为第二加壳验证信息。
步骤307,响应于第一加壳验证信息与第二加壳验证信息相同,根据动态库中对应可执行文件的解壳函数,对加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
在一些实施例中,上述执行主体可以响应于上述第一加壳验证信息与上述第二加壳验证信息相同,根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。由此,可以在当前生成的第一加壳验证信息与可执行文件中记录的第二加壳验证信息相同时,即可执行文件未被篡改时,才进行解壳处理。
步骤308,响应于第一加壳验证信息与第二加壳验证信息不同,生成表征可执行文件被篡改的可执行文件异常信息。
在一些实施例中,上述执行主体可以响应于上述第一加壳验证信息与上述第二加壳验证信息不同,生成表征上述可执行文件被篡改的可执行文件异常信息。其中,上述可执行文件异常信息可以为表征上述可执行文件被篡改的信息。上述可执行文件异常信息可以包括但不限于:可执行文件标识、篡改标记。上述可执行文件标识可以唯一标识可执行文件。篡改标记可以表征可执行文件被篡改。例如,上述可执行文件异常信息可以为“001,Y”,表征可执行文件001被篡改。由此,可以在第一加壳验证信息与上述第二加壳验证信息不同时,确定可执行文件被篡改。
步骤309,响应于检测到可执行文件异常信息,控制与嵌入式车载终端相关联的显示设备对包括可执行文件异常信息的弹窗页面进行显示。
在一些实施例中,上述执行主体可以响应于检测到上述可执行文件异常信息,控制与上述嵌入式车载终端相关联的显示设备对包括上述可执行文件异常信息的弹窗页面进行显示。其中,上述显示设备可以为车载终端中控台上的显示器。上述弹窗页面可以为以弹窗的形式在上述显示设备上显示的页面。上述弹窗页面中显示了表征重新获取可执行文件的控件。上述控件可以为用于接收用户的选择操作以重新获取可执行文件的控件。
可选地,上述执行主体可以响应于检测到上述可执行文件异常信息,控制与上述嵌入式车载终端相关联的声音提示设备执行对应上述可执行文件异常信息的异常声音提示操作。其中,上述声音提示设备可以为设置在上述嵌入式车载终端上,且与上述嵌入式车载终端通信连接的音箱。上述异常声音提示操作可以为播放异常声音的操作。实践中,上述执行主体可以控制上述音箱播放对应上述可执行文件异常信息的异常声音。例如,上述可执行文件异常信息为“001,Y”时,上述异常声音可以为“可执行文件001被篡改”。然后,可以将上述可执行文件异常信息和上述嵌入式车载终端的车载终端标识发送至相关联的监控端。其中,上述车载终端标识可以唯一标识上述嵌入式车载终端。上述监控端可以为对所关联的各个嵌入式车载终端进行监控的服务端。由此,可以使得监控端的相关人员获知可执行文件被篡改的车载终端。
步骤310,获取用户账户信息。
在一些实施例中,上述执行主体可以通过有线连接或无线连接方式从终端获取用户账户信息。其中,上述用户账户信息可以为当前登录的用户账户的相关信息,可以包括用户权限。上述用户权限可以为当前用户账户的所能操作的权限范围。
步骤311,响应于检测到作用于表征重新获取可执行文件的控件的选择操作以及用户权限满足预设权限条件,生成对应可执行文件的可执行文件下载请求。
在一些实施例中,上述执行主体可以响应于检测到作用于上述表征重新获取可执行文件的控件的选择操作以及上述用户权限满足预设权限条件,生成对应上述可执行文件的可执行文件下载请求。其中,上述预设权限条件可以为“上述用户权限包括可执行文件重新获取权限”。可执行文件重新获取权限可以表征用户账户具有重新获取可执行文件的操作权限。上述可执行文件下载请求可以为用于向相关联的服务端请求重新下载上述可执行文件的请求,可以包括可执行文件的下载网址。上述相关联的服务端可以为存储上述可执行文件的服务端。由此,可以在当前用户选择重新获取可执行文件且当前用户具有可执行文件重新获取权限时,才进行可执行文件下载。
步骤312,将可执行文件下载请求发送至相关联的服务端。
在一些实施例中,上述执行主体可以将上述可执行文件下载请求发送至相关联的服务端。
步骤313,响应于接收到服务端发送的对应可执行文件下载请求的更新可执行文件,对更新可执行文件进行加壳处理,以生成加壳可执行文件。
在一些实施例中,上述执行主体可以响应于接收到上述服务端发送的对应上述可执行文件下载请求的更新可执行文件,通过各种方式对上述更新可执行文件进行加壳处理,以生成加壳可执行文件。由此,可以对重新获取的更新可执行文件进行加密。
在一些实施例的一些可选的实现方式中,上述执行主体可以通过以下步骤对上述更新可执行文件进行加壳处理,以生成加壳可执行文件:
第一步,确定上述更新可执行文件是否包含动态库引用信息。其中,上述动态库引用信息可以为表征上述可执行文件引用了动态库的信息。例如,上述动态库引用信息可以为“Lib.so”。
第二步,响应于确定上述更新可执行文件包含动态库引用信息,对上述更新可执行文件包括的代码节进行加密,得到加密后的更新可执行文件作为第一可执行文件。实践中,上述执行主体可以通过加密算法对上述代码节进行加密,得到加密后的更新可执行文件作为第一可执行文件。例如,上述执行主体可以通过异或加密算法对上述代码节进行加密,得到加密后的更新可执行文件作为第一可执行文件。
第三步,在上述第一可执行文件中添加加壳标记信息,得到第二可执行文件。其中,上述加壳标记信息可以为表征第一可执行文件经过加密处理的标记信息。上述加壳标记信息可以包括但不限于:加壳标记。上述加壳标记可以为表征第一可执行文件经过加密处理的标记。实践中,上述执行主体可以将加壳标记信息添加至上述第一可执行文件的文件末尾位置。
第四步,根据加密后的上述代码节,生成加壳验证信息。其中,上述加壳验证信息可以为第一可执行文件中加密代码节的MD5值。
第五步,将所生成的加壳验证信息添加至上述第二可执行文件,得到加壳可执行文件。实践中,上述执行主体可以将所生成的加壳验证信息添加至上述第二可执行文件的文件末尾位置,得到加壳可执行文件。
步骤305-313作为本公开的实施例的一个发明点,解决了背景技术提及的技术问题二“可执行文件被篡改后,不能自动重新获取可执行文件,且重新获取可执行文件时,外部可截取重新获取的可执行文件,导致可执行文件泄露,可执行文件的安全性较差。”。导致可执行文件的安全性较差的因素往往如下:可执行文件被篡改后,不能自动重新获取可执行文件,且重新获取可执行文件时,外部可截取重新获取的可执行文件,导致可执行文件泄露。如果解决了上述因素,就能达到提高可执行文件的安全性的效果。为了达到这一效果,本公开引入了第一加壳验证信息和第二加壳验证信息。当前生成的第一加壳验证信息与可执行文件中记录的第二加壳验证信息相同时,即可执行文件未被篡改时,才进行解壳处理。当第一加壳验证信息与上述第二加壳验证信息不同时,可以确定可执行文件被篡改,生成可执行文件异常信息。之后,通过步骤309-312,可以在当前用户选择重新获取可执行文件且当前用户具有可执行文件重新获取权限时,才进行可执行文件下载。通过步骤313,可以对重新获取的更新可执行文件进行加密。由此,可以在检测到可执行文件被篡改后,当前用户选择重新获取可执行文件且当前用户具有可执行文件重新获取权限时,自动重新获取可执行文件。也因为当前用户具有可执行文件重新获取权限时,才能自动重新获取可执行文件,可以避免重新获取可执行文件时外部截取可执行文件。由此,可以避免在重新获取可执行文件时可执行文件泄露。从而可以提升可执行文件的安全性。
从图3中可以看出,与图2对应的一些实施例的描述相比,图3 对应的一些实施例中的可执行文件执行方法的流程300体现了对重新获取可执行文件所扩展的步骤。由此,这些实施例描述的方案可以避免在重新获取可执行文件时可执行文件泄露。从而可以提升可执行文件的安全性。
进一步参考图4,作为对上述各图所示方法的实现,本公开提供了一种可执行文件执行装置的一些实施例,这些装置实施例与图2所示的那些方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,一些实施例的可执行文件执行装置400包括:第一读取单元401、确定单元402、调用单元403、第二读取单元404和解壳单元405。其中,第一读取单元401被配置成响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件;确定单元402被配置成确定上述可执行文件是否为加壳可执行文件;调用单元403被配置成响应于确定上述可执行文件为加壳可执行文件,调用反调试函数;第二读取单元404被配置成将上述可执行文件中的加密代码节读取至内存;解壳单元405被配置成根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
可以理解的是,该装置400中记载的诸单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置400及其中包含的单元,在此不再赘述。
下面参考图5,其示出了适于用来实现本公开的一些实施例的电子设备(例如图1中的计算设备101)500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线 504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置 506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图5中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开的一些实施例的方法中限定的上述功能。
需要说明的是,本公开的一些实施例中记载的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP (HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件;确定上述可执行文件是否为加壳可执行文件;响应于确定上述可执行文件为加壳可执行文件,调用反调试函数;将上述可执行文件中的加密代码节读取至内存;根据动态库中对应上述可执行文件的解壳函数,对上述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言,还包括Go 语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一读取单元、确定单元、调用单元、第二读取单元和解壳单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一读取单元还可以被描述为“响应于检测到用户对于目标应用程序的运行请求,读取上述目标应用程序对应的可执行文件的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD) 等等。
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的。
Claims (10)
1.一种可执行文件执行方法,应用于嵌入式车载终端,包括:
响应于检测到用户对于目标应用程序的运行请求,读取所述目标应用程序对应的可执行文件;
确定所述可执行文件是否为加壳可执行文件;
响应于确定所述可执行文件为加壳可执行文件,调用反调试函数;
将所述可执行文件中的加密代码节读取至内存;
根据动态库中对应所述可执行文件的解壳函数,对所述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
2.根据权利要求1所述的方法,其中,所述根据动态库中对应所述可执行文件的解壳函数,对所述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段,包括:
根据所述可执行文件中的加密代码节,生成第一加壳验证信息;
从所述可执行文件中提取加壳验证信息作为第二加壳验证信息;
响应于所述第一加壳验证信息与所述第二加壳验证信息相同,根据动态库中对应所述可执行文件的解壳函数,对所述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
3.根据权利要求2所述的方法,其中,所述方法还包括:
响应于所述第一加壳验证信息与所述第二加壳验证信息不同,生成表征所述可执行文件被篡改的可执行文件异常信息;
响应于检测到所述可执行文件异常信息,控制与所述嵌入式车载终端相关联的显示设备对包括所述可执行文件异常信息的弹窗页面进行显示,其中,所述弹窗页面中显示了表征重新获取可执行文件的控件。
4.根据权利要求3所述的方法,其中,所述方法还包括:
获取用户账户信息,其中,所述用户账户信息包括用户权限;
响应于检测到作用于所述表征重新获取可执行文件的控件的选择操作以及所述用户权限满足预设权限条件,生成对应所述可执行文件的可执行文件下载请求;
将所述可执行文件下载请求发送至相关联的服务端;
响应于接收到所述服务端发送的对应所述可执行文件下载请求的更新可执行文件,对所述更新可执行文件进行加壳处理,以生成加壳可执行文件。
5.根据权利要求4所述的方法,其中,所述对所述更新可执行文件进行加壳处理,以生成加壳可执行文件,包括:
确定所述更新可执行文件是否包含动态库引用信息;
响应于确定所述更新可执行文件包含动态库引用信息,对所述更新可执行文件包括的代码节进行加密,得到加密后的更新可执行文件作为第一可执行文件;
在所述第一可执行文件中添加加壳标记信息,得到第二可执行文件;
根据加密后的所述代码节,生成加壳验证信息;
将所生成的加壳验证信息添加至所述第二可执行文件,得到加壳可执行文件。
6.根据权利要求3所述的方法,其中,所述控制与所述嵌入式车载终端相关联的显示设备对包括所述可执行文件异常信息的弹窗页面进行显示,包括:
控制与所述嵌入式车载终端相关联的声音提示设备执行对应所述可执行文件异常信息的异常声音提示操作;
将所述可执行文件异常信息和所述嵌入式车载终端的车载终端标识发送至相关联的监控端。
7.根据权利要求1-6之一所述的方法,其中,所述方法还包括:
响应于确定所述可执行文件为非加壳可执行文件,运行所述可执行文件包括的代码节中的各个代码段。
8.一种可执行文件执行装置,用于嵌入式车载终端,包括:
第一读取单元,被配置成响应于检测到用户对于目标应用程序的运行请求,读取所述目标应用程序对应的可执行文件;
确定单元,被配置成确定所述可执行文件是否为加壳可执行文件;
调用单元,被配置成响应于确定所述可执行文件为加壳可执行文件,调用反调试函数;
第二读取单元,被配置成将所述可执行文件中的加密代码节读取至内存;
解壳单元,被配置成根据动态库中对应所述可执行文件的解壳函数,对所述加密代码节包括的每个加密代码段进行解壳处理,以及运行解壳处理后的加密代码段。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111275057.9A CN113987471A (zh) | 2021-10-29 | 2021-10-29 | 可执行文件执行方法、装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111275057.9A CN113987471A (zh) | 2021-10-29 | 2021-10-29 | 可执行文件执行方法、装置、电子设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113987471A true CN113987471A (zh) | 2022-01-28 |
Family
ID=79744673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111275057.9A Pending CN113987471A (zh) | 2021-10-29 | 2021-10-29 | 可执行文件执行方法、装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113987471A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115659292A (zh) * | 2022-12-28 | 2023-01-31 | 北京大学 | 脚本代码的加密方法及装置 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664874A (zh) * | 2012-03-29 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种安全登陆的方法和系统 |
CN103077332A (zh) * | 2012-12-28 | 2013-05-01 | 飞天诚信科技股份有限公司 | 一种运行含有自校验的加壳程序的方法和装置 |
CN105825085A (zh) * | 2016-03-16 | 2016-08-03 | 广州彩瞳网络技术有限公司 | 应用程序的处理方法及装置 |
CN106203006A (zh) * | 2016-08-31 | 2016-12-07 | 北京鼎源科技有限公司 | 基于dex与so文件动态执行的Android应用加固方法 |
CN106708550A (zh) * | 2015-11-17 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 一种共享对象库加载的方法及装置 |
CN106778226A (zh) * | 2016-11-24 | 2017-05-31 | 四川无声信息技术有限公司 | 文件壳脱壳方法及装置 |
CN107220529A (zh) * | 2017-05-19 | 2017-09-29 | 湖南鼎源蓝剑信息科技有限公司 | 一种针对Android平台SDK包的加固方法 |
CN107292135A (zh) * | 2017-06-06 | 2017-10-24 | 网易(杭州)网络有限公司 | 一种程序代码保护方法和装置 |
CN107403089A (zh) * | 2017-07-10 | 2017-11-28 | 东软集团股份有限公司 | 基于应用程序的资源篡改识别方法和装置 |
CN109740311A (zh) * | 2019-01-07 | 2019-05-10 | 广州小鹏汽车科技有限公司 | 安卓应用的安全加固方法及装置 |
CN109918917A (zh) * | 2019-03-19 | 2019-06-21 | 北京智游网安科技有限公司 | 防止h5源码泄漏的方法、计算机设备和存储介质 |
CN110046479A (zh) * | 2019-03-21 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 一种基于安卓操作系统的链接库文件反调试方法及装置 |
CN110096853A (zh) * | 2019-04-12 | 2019-08-06 | 福建天晴在线互动科技有限公司 | 基于Mono的Unity安卓应用加固方法、存储介质 |
CN111191195A (zh) * | 2019-12-10 | 2020-05-22 | 航天信息股份有限公司 | 一种用于保护apk的方法和装置 |
CN111367505A (zh) * | 2020-03-02 | 2020-07-03 | 广州致远电子有限公司 | 一种JavaScript源代码保密方法、装置、设备及存储介质 |
CN112035803A (zh) * | 2020-11-05 | 2020-12-04 | 北京华云安信息技术有限公司 | 一种基于Windows平台软件的保护方法及装置 |
-
2021
- 2021-10-29 CN CN202111275057.9A patent/CN113987471A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664874A (zh) * | 2012-03-29 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种安全登陆的方法和系统 |
CN103077332A (zh) * | 2012-12-28 | 2013-05-01 | 飞天诚信科技股份有限公司 | 一种运行含有自校验的加壳程序的方法和装置 |
CN106708550A (zh) * | 2015-11-17 | 2017-05-24 | 百度在线网络技术(北京)有限公司 | 一种共享对象库加载的方法及装置 |
CN105825085A (zh) * | 2016-03-16 | 2016-08-03 | 广州彩瞳网络技术有限公司 | 应用程序的处理方法及装置 |
CN106203006A (zh) * | 2016-08-31 | 2016-12-07 | 北京鼎源科技有限公司 | 基于dex与so文件动态执行的Android应用加固方法 |
CN106778226A (zh) * | 2016-11-24 | 2017-05-31 | 四川无声信息技术有限公司 | 文件壳脱壳方法及装置 |
CN107220529A (zh) * | 2017-05-19 | 2017-09-29 | 湖南鼎源蓝剑信息科技有限公司 | 一种针对Android平台SDK包的加固方法 |
CN107292135A (zh) * | 2017-06-06 | 2017-10-24 | 网易(杭州)网络有限公司 | 一种程序代码保护方法和装置 |
CN107403089A (zh) * | 2017-07-10 | 2017-11-28 | 东软集团股份有限公司 | 基于应用程序的资源篡改识别方法和装置 |
CN109740311A (zh) * | 2019-01-07 | 2019-05-10 | 广州小鹏汽车科技有限公司 | 安卓应用的安全加固方法及装置 |
CN109918917A (zh) * | 2019-03-19 | 2019-06-21 | 北京智游网安科技有限公司 | 防止h5源码泄漏的方法、计算机设备和存储介质 |
CN110046479A (zh) * | 2019-03-21 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 一种基于安卓操作系统的链接库文件反调试方法及装置 |
CN110096853A (zh) * | 2019-04-12 | 2019-08-06 | 福建天晴在线互动科技有限公司 | 基于Mono的Unity安卓应用加固方法、存储介质 |
CN111191195A (zh) * | 2019-12-10 | 2020-05-22 | 航天信息股份有限公司 | 一种用于保护apk的方法和装置 |
CN111367505A (zh) * | 2020-03-02 | 2020-07-03 | 广州致远电子有限公司 | 一种JavaScript源代码保密方法、装置、设备及存储介质 |
CN112035803A (zh) * | 2020-11-05 | 2020-12-04 | 北京华云安信息技术有限公司 | 一种基于Windows平台软件的保护方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115659292A (zh) * | 2022-12-28 | 2023-01-31 | 北京大学 | 脚本代码的加密方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111245811A (zh) | 信息加密方法、装置及电子设备 | |
CN111259409A (zh) | 一种信息加密方法、装置、电子设备及存储介质 | |
CN111400760B (zh) | web应用访问数据库的方法、装置、服务器和存储介质 | |
US11501016B1 (en) | Digital password protection | |
CN110545542B (zh) | 基于非对称加密算法的主控密钥下载方法、装置和计算机设备 | |
CN109635558B (zh) | 访问控制方法、装置和系统 | |
CN114880011A (zh) | Ota升级方法、装置、电子设备及可读存储介质 | |
US10691424B2 (en) | Method for programming and terminal device | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN113987471A (zh) | 可执行文件执行方法、装置、电子设备和计算机可读介质 | |
CN113032345A (zh) | 文件处理的方法、装置、终端及非暂时性存储介质 | |
CN107463808B (zh) | 集成在操作系统内的功能模块的调用方法 | |
CN115190064A (zh) | 客户端动态路由的实现方法、装置、系统和存储介质 | |
CN110618967B (zh) | 应用程序运行方法、安装包生成方法、装置、设备及介质 | |
CN114756879A (zh) | 信息表处理方法、装置、电子设备和计算机可读介质 | |
CN114491421A (zh) | 文件加密、文件处理方法、装置、可读介质和电子设备 | |
CN113987470B (zh) | 可执行文件处理方法、装置、电子设备和计算机可读介质 | |
CN114816495A (zh) | Ota升级方法、装置、电子设备及可读存储介质 | |
CN113515747A (zh) | 设备升级方法、装置、设备及存储介质 | |
CN110287087B (zh) | 用于检测应用的方法和装置 | |
CN110543772A (zh) | 离线解密方法和装置 | |
CN110659476A (zh) | 用于重置密码的方法和装置 | |
CN112256196B (zh) | 文件读取方法、装置、电子设备和计算机可读介质 | |
CN113626873B (zh) | 鉴权方法、装置、电子设备和计算机可读介质 | |
CN113987469B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220128 |
|
RJ01 | Rejection of invention patent application after publication |