CN112905260A - 一种应用启动方法、装置、电子设备及存储介质 - Google Patents

一种应用启动方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112905260A
CN112905260A CN202110169089.4A CN202110169089A CN112905260A CN 112905260 A CN112905260 A CN 112905260A CN 202110169089 A CN202110169089 A CN 202110169089A CN 112905260 A CN112905260 A CN 112905260A
Authority
CN
China
Prior art keywords
starting
target process
target
desktop
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.)
Granted
Application number
CN202110169089.4A
Other languages
English (en)
Other versions
CN112905260B (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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202110169089.4A priority Critical patent/CN112905260B/zh
Publication of CN112905260A publication Critical patent/CN112905260A/zh
Application granted granted Critical
Publication of CN112905260B publication Critical patent/CN112905260B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种应用启动方法、装置、电子设备及计算机可读存储介质,该方法包括:当第一桌面拉起目标进程时,向目标进程注入目标函数库,并利用目标函数库对启动标记接口进行监控;当检测到目标进程调用启动标记接口时,获取启动标记信息,并对启动标记信息进行重定向,得到重定向信息;利用重定向信息创建重定向对象,完成目标进程在第一桌面中的启动过程;当第二桌面拉起目标进程时,创建启动标记信息对应的启动标记对象,完成目标进程在第二桌面中的启动过程;该方法不需要对全部的接口进行hook即可完成多实例启动,因此降低了对目标进程的侵入程度,避免出现兼容性问题。

Description

一种应用启动方法、装置、电子设备及存储介质
技术领域
本申请涉及软件技术领域,特别涉及一种应用启动方法、应用启动装置、电子设备及计算机可读存储介质。
背景技术
在通常情况下,进程(或称为应用)只能进行启动启动,当一个进程在已经启动时,无法再次对其进行启动,因此不会同时存在两组同名的进程。然而在实际应用中,在存在个人桌面和安全桌面的情况下,可能需要在两个桌面上同时使用某一个进程,在这种情况下,需要在切换桌面时同时关闭并在另一个桌面重新打开该进程,因此操作繁琐。为了解决上述问题,相关技术当某一指定桌面上任何进程启动时,对该进程的全部接口(ApplicationProgramming Interface,API)进行hook(即钩子)重定向处理,以便使得该进程在另一桌面也能够启动,实现应用启动。然而,相关技术对所有进程的全部API进行hook,对该进程的侵入程度较大,容易引发兼容性问题。
发明内容
有鉴于此,本申请的目的在于提供一种应用启动方法、应用启动装置、电子设备及计算机可读存储介质,仅对启动标记接口进行hook,不需要对全部的接口进行hook即可完成多实例启动,因此降低了对目标进程的侵入程度,避免出现兼容性问题。
为解决上述技术问题,本申请提供了一种应用启动方法,具体包括:
当第一桌面拉起目标进程时,向所述目标进程注入目标函数库,并利用所述目标函数库对启动标记接口进行监控;
当检测到所述目标进程调用所述启动标记接口时,获取启动标记信息,并对所述启动标记信息进行重定向,得到重定向信息;
利用所述重定向信息创建重定向对象,完成所述目标进程在所述第一桌面中的启动过程;
当第二桌面拉起所述目标进程时,创建所述启动标记信息对应的启动标记对象,完成所述目标进程在所述第二桌面中的启动过程。
可选地,所述对所述启动标记信息进行重定向,得到重定向信息,包括:
基于所述启动标记信息的信息类型,对所述启动标记信息进行名称修改处理、路径重定向处理、端口修改处理中的至少一项,得到所述重定向信息。
可选地,所述第一桌面拉起目标进程,包括:
若检测到所述目标进程进行了进程注册,则获取对应的启动标识;
利用所述启动标识判断所述目标进程是否由所述第一桌面拉起;
若由所述第一桌面拉起,则确定检测到所述目标进程在所述第一桌面启动。
可选地,所述向所述目标进程注入目标函数库,包括:
判断是否检测到所述目标进程对应的模块加载回调信号;
若检测到所述模块加载回调信号,则向所述目标进程中注入所述目标函数库。
可选地,还包括:
利用所述目标函数库对第一目标进程的写接口进行监控;所述第一目标进程为所述第一桌面内的所述目标进程;
若检测到所述第一目标进程调用所述写接口,则获取待写数据,并利用加密驱动对所述待写数据进行加密,得到加密数据;
基于所述加密数据对应的存储路径存储所述加密数据。
可选地,所述基于所述加密数据对应的存储路径存储所述加密数据,包括:
利用所述加密驱动对所述存储路径进行路径重定向处理,得到加密路径;
在所述加密路径下存储所述加密数据。
可选地,还包括:
利用所述目标函数库对所述第一目标进程的读接口进行监控;
若检测到所述第一目标进程调用所述读接口,则获取读请求,并确定所述读请求对应的目标加密路径;
利用所述加密驱动从所述目标加密路径下获取目标加密数据,并对所述目标加密数据进行解密处理,得到读数据;
利用所述加密驱动将所述读数据发送至所述第一目标进程。
本申请还提供了一种应用启动装置,包括:
注入模块,用于当第一桌面拉起目标进程时,向所述目标进程注入目标函数库,并利用所述目标函数库对启动标记接口进行监控;
重定向模块,用于当检测到所述目标进程调用所述启动标记接口时,获取启动标记信息,并对所述启动标记信息进行重定向,得到重定向信息;
第一启动模块,用于利用所述重定向信息创建重定向对象,完成所述目标进程在所述第一桌面中的启动过程;
第二启动模块,用于当第二桌面拉起所述目标进程时,创建所述启动标记信息对应的启动标记对象,完成所述目标进程在所述第二桌面中的启动过程。
本申请还提供了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的应用启动方法。
本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的应用启动方法。
本申请提供的应用启动方法,当第一桌面拉起目标进程时,向目标进程注入目标函数库,并利用目标函数库对启动标记接口进行监控;当检测到目标进程调用启动标记接口时,获取启动标记信息,并对启动标记信息进行重定向,得到重定向信息;利用重定向信息创建重定向对象,完成目标进程在第一桌面中的启动过程;当第二桌面拉起目标进程时,创建启动标记信息对应的启动标记对象,完成目标进程在第二桌面中的启动过程。
可见,该方法中的目标进程为采用启动标记对象进行启动检测的进程,当第一桌面拉起目标进程时,通过输入目标函数库,可以对目标进程的启动标记接口进行监控,由于目标进程在启动时需要创建启动标记对象以禁止多实例启动,因此其必然会调用启动标记接口。在检测到启动标记接口被调用后,获取用于创建标记对象的启动标记信息,通过对其进行重定向,可以得到对应的重定向信息,并利用其创建重定向对象,完成启动。当该目标进程在第二桌面启动时,即当第二桌面拉起目标进程时,由于基于重定向信息创建的重定向对象并不是标准的启动标记对象,因此目标进程在第二桌面启动时会认为并没有启动,因此创建对应的启动标记对象并进行启动。至此,目标进程在第一桌面和第二桌面均完成启动,实现了进行多实例启动。由于目标进程利用启动标记对象进行是否已经启动的判断,因此目标函数库仅对启动标记接口进行hook即可,不需要对全部的接口进行hook即可完成多实例启动,因此降低了对目标进程的侵入程度,避免出现兼容性问题,解决了相关技术对进程的侵入程度较大,容易引发兼容性问题。
此外,本申请还提供了一种应用启动装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种应用启动方法流程图;
图2为本申请实施例提供的一种应用场景示意图;
图3为本申请实施例提供的一种目标进程在第一桌面启动的流程图;
图4为本申请实施例提供的一种目标进程在第二桌面启动的流程图;
图5为本申请实施例提供的一种应用启动效果图;
图6为本申请实施例提供的一种应用启动装置的结构示意图;
图7为本申请实施例提供的一种应用启动方法所适用的一种硬件组成框架示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术为了使得能够实现多实例启动的效果,对进程的全部API(即接口)进行hook监控,并在检测到接口被调用时进行重定向。这样虽然能够实现应用启动,但是多所有接口都进行hook会使得对目标进程的侵入程度较大,即对进程的每一个操作都进行监控和修改,而较大的侵入程度会导致进程出现兼容性问题,影响使用体验。
为了解决上述问题,本申请提供了一种应用启动方法。请参考图1,图1为本申请实施例提供的一种应用启动方法流程图。该方法包括:
S101:当第一桌面拉起目标进程时,向目标进程注入目标函数库,并利用目标函数库对启动标记接口进行监控。
需要说明的是,本实施例中的部分或全部步骤可以由指定的电子设备执行,该指定的电子设备的具体类型不做限定,例如可以为计算机。请参考图2,图2为本申请实施例提供的一种应用场景示意图,用户可以控制计算机,进而控制计算机上的第一桌面拉起目标进程。可以理解的是,本实施例中的“进程”即为应用进程,即“应用”的另一种说法。事实上,为了防止多实例启动,有部分进程通常采用固定的标记来标明当前是否已经启动,当进程启动时,判断是否存在该标记,若存在则说明该进程已经启动,本次启动失败;若不存在则说明该进程未启动,本次启动可以顺利进行。因此可以理解的是,对于这一类进程,仅对用于进行标记的接口进行hook操作即可,通过在启动时生成如正常启动过程时不同的标记,即可在再次启动时判定未启动,进而实现进程的多实例启动。对于这一类进程,无需对其全部接口进行监控,仅监控用于进行标记的接口即可,因此可以在保证多实例启动的情况下降低对进程的侵入程度,进而降低兼容性问题发生的几率。
在本实施例中,目标进程为利用启动标记对象进行启动检测的进程,其具体为哪一个进程不做限定。启动标记对象为目标进程判断是否已经启动的标记,其形式可以为内核对象、文件对象等,不同进程对应的启动标记对象不同。可以理解的是,由于目标对象仅利用启动标记对象判断是否已经启动,而进程必然通过启动标记端口在启动时创建启动标记对象,因此可以在第一桌面拉起目标进程时,进行函数库注入,函数库注入具体可以为DLL注入,DLL即Dynamic Link Library,动态链接库。通过注入与目标进程对应的目标函数库,可以利用其对启动标记接口进行hook监控,以便判断目标进程是否调用了启动标记接口。
本实施例中第一桌面为多个桌面中的任意若干个,其具体数量和内容不做限定,例如当存在个人桌面与工作桌面两个时,可以指定工作桌面作为第一桌面。本实施例并不限定如何确定目标进程由哪一个桌面启动,例如可以判断启动目标进程的指令由哪一个桌面生成,进而判断目标进程是否在第一桌面启动。启动标记接口可以为专门用于进行标记的接口,或者可以为普通接口,当该普通接口用于执行标记操作时则为启动标记接口。例如当启动标记对象为文件对象时,当创建文件的接口用于创建指定名称或指定路径的文件时,则该接口为启动标记接口,该文件即为启动标记对象。本实施例并不限定利用目标函数库对启动标记接口的具体监控过程,例如当启动标记接口为专门用于进行标记的接口时,可以直接监听该接口即可完成监控;当启动标记接口为普通接口时,可以在该接口被调用时判断其调用操作是否为标记操作,进而实现对启动标记接口的监控。
S102:当检测到目标进程调用启动标记接口时,获取启动标记信息,并对启动标记信息进行重定向,得到重定向信息。
当检测到目标进程调用启动标记时,说明目标进程想要创建启动标记对象,为了实现多实例启动,可以获取用于生成启动标记对象的启动标记信息,并对其进行重定向得到重定向信息。启动标记信息可以由目标进程生成并发送至启动标记接口以便对其进行调用,其形式和内容不做限定,例如可以为名称形式、路径形式等。具体的,可以利用目标函数库对启动标记信息进行重定向处理,或者可以由其他的函数库进行重定向,重定向的过程同样属于hook操作的过程。通过重定向,可以将原本用于生成启动标记对象的启动标记信息转换为重定向信息,以便在后续生成与启动标记信息不同的重定向对象。本实施例并不限定重定向的具体方式,根据启动标记信息的类型不同,重定向的方式也可以不同,例如可以为名称重定向、路径重定向等。需要说明的是,当第一桌面的数量为多个时,每个第一桌面对应的重定向方式不同,因此同一个启动标记信息得到的重定向信息不同。
S103:利用重定向信息创建重定向对象,完成目标进程在第一桌面中的启动过程。
在得到重定向信息后,可以利用重定向信息生成重定向对象,在创建重定向对象后,即可完成目标进程在第一桌面中的启动。重定向对象的具体生成方式和过程不做限定,可以参考相关技术。
S104:当第二桌面拉起目标进程时,创建启动标记信息对应的启动标记对象,完成目标进程在第二桌面中的启动过程。
第二桌面可以为多个桌面中任意一个非第一桌面,当检测到目标进程在第二桌面启动时,可以利用启动标记信息对应的启动标记对象,由于进程在第一桌面启动时并未创建启动标记对象,因此目标进程在没有在第二桌面启动的情况下可以成功创建启动,进而成功在第二桌面中启动,完成进程的多实例启动。
应用本申请实施例提供的应用启动方法,目标进程为采用启动标记对象进行启动检测的进程,当第一桌面拉起目标进程时,通过输入目标函数库,可以对目标进程的启动标记接口进行监控,由于目标进程在启动时需要创建启动标记对象以禁止多实例启动,因此其必然会调用启动标记接口。在检测到启动标记接口被调用后,获取用于创建标记对象的启动标记信息,通过对其进行重定向,可以得到对应的重定向信息,并利用其创建重定向对象,完成启动。当该目标进程在第二桌面启动时,由于基于重定向信息创建的重定向对象并不是标准的启动标记对象,因此目标进程在第二桌面启动时会认为并没有启动,因此创建对应的启动标记对象并进行启动。至此,目标进程在第一桌面和第二桌面均完成启动,实现了进行多实例启动。由于目标进程利用启动标记对象进行是否已经启动的判断,因此目标函数库仅对启动标记接口进行hook即可,不需要对全部的接口进行hook即可完成多实例启动,因此降低了对目标进程的侵入程度,避免出现兼容性问题,解决了相关技术对进程的侵入程度较大,容易引发兼容性问题的问题。同时,由于相关技术通常采用沙箱的方式实现多桌面的效果,因此多桌面的情况下第一桌面通常为沙箱的外在表现。为了进行多实例启动,相关技术通常需要在各个桌面在底层对应的沙箱中单独安装应用,并对各个沙箱进行单独配置。而本实施例通过重定向的方式即可实现在目标进程在多个桌面(即沙箱内部)中的启动,在第一桌面中启动目标进程时,直接调用第二桌面对应的目标进程(即电子设备原有系统中安装的目标进程)即可,因此可以理解的是,本申请不需要在各个沙箱中安装进程,也不需要对其单独进行配置,减少了工作量。
基于上述实施例,本实施例将对上述实施例中的若干步骤进行具体阐述。在一种可行的实施方式中,第一桌面拉起目标进程的过程具体可以包括如下步骤:
步骤11:若检测到目标进程进行了进程注册,则获取对应的启动标识。
进程在启动时,需要进行进程注册,进程注册的具体过程不做限定。例如可以存在系统注册进程,目标进程通过与系统注册进程进行交互,完成进程注册。进程注册时可以得到目标进程的进程信息,其中可以包括启动标识,启动标识可以记录目标进程的启动位置。
步骤12:利用启动标识判断目标进程是否由第一桌面拉起。
在获取启动标识后,可以利用其判断目标进程的启动位置,即判断目标进程是否由第一桌面拉起,通过判断目标进程是否由第一桌面拉起,可以判断目标进程是否在第一桌面启动。本实施例并不限定具体的判断方式,例如可以判断启动标识与第一桌面是否对应,即判断启动标识是否为第一桌面对应的标识。
步骤13:若由第一桌面拉起,则确定检测到第一桌面拉起目标进程。
由于桌面仅能拉起在自身启动的进程,因此若确定目标进程由第一桌面拉起,则可以确定目标进程在第一桌面启动。通过设置启动标识,可以准确快速地确定目标进程的启动位置,进而确定是否需要进行目标函数库的注入。
进一步的,为了成功注入目标函数库,向目标进程注入目标函数库的过程具体可以包括如下步骤:
步骤21:判断是否检测到目标进程对应的模块加载回调信号。
在本实施例中,为了能够成功注入目标函数库,可以在系统注册进程等可以监控目标进程启动情况的进程中设置回调函数,并判断是否获取到对应的模块加载回调信号。模块加载回调信号可以表明目标进程开始加载模块。
步骤22:若检测到模块加载回调信号,则向目标进程中注入目标函数库。
在检测到模块加载回调信号后,说明目标进程开始加载模块。由于在进程启动的过程中的各个阶段均可以进行DLL注入,而在非模块加载阶段进行DLL注入时均会受到一定的限制。因此为了成功注入目标函数库,可以在检测到模块加载回调信号,确定目标进程进行模块加载时向目标进程注入目标函数库。
基于上述实施例,在一种可行的实施方式中,不同类型的目标进程采用的启动标记对象的形式不同。因此为了得到准确的重定向信息,以便在后续成功创建重定向对象,对启动标记信息进行重定向,得到重定向信息的过程具体可以包括:
步骤31:基于启动标记信息的信息类型,对启动标记信息进行名称修改处理、路径重定向处理、端口修改处理中的至少一项,得到重定向信息。
由于启动标记对象通常为内核对象、文件对象和端口对象,因此可以对启动标记信息进行名称修改处理、路径重定向处理和端口修改处理中的至少一个,即可得到准确的重定向信息。本实施并不限定如何确定启动标记信息的信息类型,例如在一种实施方式中,可以根据启动标记信息的格式确定其信息类型;在另一种实施方式中,可以提前设置目标进程与信息类型的对应关系,利用该对应关系确定信息类型,进而根据信息类型确定对应的处理方式。例如当目标进程为WPS程序(即WPS Office软件程序,是一种办公软件)时,可以确定其对应的启动标记对象为内核对象类型,因此可以对其进行名称修改处理完成重定向,得到对应的重定向信息。
基于上述实施例,在一种具体的实施方式中,为了提高数据安全性,可以将某一桌面中目标进程产生的数据进行加密存储,使得其它桌面上的数据无法读取该桌面产生的数据,防止数据泄密,保证数据安全。具体的,还可以包括如下步骤:
步骤41:利用目标函数库对第一目标进程的写接口进行监控。
需要说明的是,本实施例中的第一目标进程为第一桌面内的目标进程,即本实施例中将第一桌面确定为安全桌面,并对安全桌面产生的数据进行加密存储。具体的,通过对第一目标进程的写接口进行监控,可以检测到目标进程对写接口的调用。
步骤42:若检测到第一目标进程调用写接口,则获取待写数据,并利用加密驱动对待写数据进行加密,得到加密数据。
在检测到第一目标进程调用了写接口后,可以通过写接口获取待写数据,加密驱动用于对数据进行加解密,其具体形式和采用的加解密方式不做限定。通过对待写数据进行加密,可以得到对应的加密数据。
步骤43:基于加密数据对应的存储路径存储加密数据。
在得到加密数据后,根据其对应的存储路径对其进行存储,完成数据的加密落盘。本实施例并不限定加密数据的具体存储方式,例如在一种实施方式中,可以直接将加密数据存储在存储路径下。在另一种实施方式中,为了进一步提高数据的安全性,基于加密数据对应的存储路径存储加密数据的过程具体包括如下步骤:
步骤51:利用加密驱动对存储路径进行路径重定向处理,得到加密路径。
步骤52:在加密路径下存储加密数据。
加密驱动还可以对存储路径进行路径重定向,通过路径重定向的方式对存储路径进行加密,进一步保证数据落盘的安全性。路径重定向的具体方式不做限定,可以参考相关技术。可以理解的是,路径重定向处理并不是必须步骤,即可以仅对数据进行加密而不进行路径重定向。
相应的,由于数据写入时进行了数据加密,因此在数据读出时需要进行解密。因此本实施例还可以包括如下步骤:
步骤61:利用目标函数库对第一目标进程的读接口进行监控。
步骤62:若检测到第一目标进程调用读接口,则获取读请求,并确定读请求对应的目标加密路径。
需要说明的是,本实施例并不限定确定目标加密路径的具体方式,例如在一种可行的实施方式中,加密驱动可以统计数据与目标加密路径的对应关系。读请求用于指定想要读取的数据,通过该对应关系即可由加密驱动确定对应的目标加密路径。
步骤63:利用加密驱动从目标加密路径下获取目标加密数据,并对目标加密数据进行解密处理,得到读数据。
可以理解的是,对目标加密数据进行的机密处理的过程与目标加密数据的加密过程相对应,具体的解密方式和加密方式不做限定。
步骤64:利用加密驱动将读数据发送至第一目标进程。
通过对写入的数据进行加密和路径重定向,可以对数据进行应用透明的加密处理,让数据加密存储,保障数据安全。
基于上述实施例,请参考图3,图3为本申请实施例提供的一种目标进程在第一桌面启动的流程图。本实施例中,目标进程为WPS进程,一种文档编辑软件。WPS进程以共享内存对象作为单实例标记对象(单实例标记对象即为启动标记对象),共享内存对象是一种内核对象。安全桌面为第一桌面,当启动安全桌面中的WPS进程后,驱动程序注册的回调函数会在检测到WPS进程启动时,获取对应的所属桌面信息,例如为启动标识。通过所属桌面信息可以判断是否为安全桌面上的WPS进程启动,在判定是之后,将该WPS进程标记为安全进程,即安全桌面上启动的进程,进而在检测到该进程在加载模块时向其中输入DLL,即函数库。在DLL中对WPS启动对象进行hook监控,即对启动标记接口进行监控,并在检测到被调用时进行hook操作。具体的,WPS通过创建共享内存对象的方式进行启动标记,因此其对应的内核对象创建接口在创建指定名称的共享内存对象时,该接口即为启动标记接口。具体的,可以判断操作的对象名称是否为启动共享内存名称,名称形式具体不做限定,例如可以为:shared_memory_content_wpsoffice_starup_object_{DEB796DA-F98E-48A4-AE1E-71411184820E},当检测到想要创建该对象时,可以确定检测到启动标记接口被调用,因此进行重定向。在本实施例中,采用修改对象名称的方式进行重定向,例如可以修改为:shared_memory_content_wpsoffice_starup_object_{DEB796DA-F98E-48A4-AE1E-71411184820E}_sangfor。WPS进程检测到不存在修改后的启动共享内存对象后,创建修改后的启动共享内存对象,即名称为shared_memory_content_wpsoffice_starup_object_{DEB796DA-F98E-48A4-AE1E-71411184820E}_sangfor的重定向对象,并在创建完成后继续启动,最终成功在安全桌面中启动。
请参考图4,图4为本申请实施例提供的一种目标进程在第二桌面启动的流程图。WPS进程在第二桌面启动时,可以通过判断能否成功打开单实例标记对象的方式来判断WPS进程是否已经在第二桌面启动。若成功打开,则说明已经有WPS进程启动了,因此退出。若打开失败,则证明没有WPS进程启动,因此进入正常启动模式。由于WPS进程在第一桌面启动时并没有创建启动标记对象,而是创建了重定向对象。因此只要WPS没有已经在第二桌面启动,其均可以成功启动,实现进程的多实例启动。请参考图5,图5为本申请实施例提供的一种应用启动效果图,可以看出,一共存在两组WPS进程,其中一组运行在个人桌面,即第二桌面,另一组运行在沙箱内,该沙箱的界面表现即为第一桌面。
下面对本申请实施例提供的应用启动装置进行介绍,下文描述的应用启动装置与上文描述的应用启动方法可相互对应参照。
请参考图6,图6为本申请实施例提供的一种应用启动装置的结构示意图,包括:
注入模块110,用于当第一桌面拉起目标进程时,向目标进程注入目标函数库,并利用目标函数库对启动标记接口进行监控;
重定向模块120,用于当检测到目标进程调用启动标记接口时,获取启动标记信息,并对启动标记信息进行重定向,得到重定向信息;
第一启动模块130,用于利用重定向信息创建重定向对象,完成目标进程在第一桌面中的启动过程;
第二启动模块140,用于当检测到目标进程在第二桌面启动时,创建启动标记信息对应的启动标记对象,完成目标进程在第二桌面中的启动过程。
应用本申请实施例提供的应用启动装置,目标进程为采用启动标记对象进行启动检测的进程,当第一桌面拉起目标进程时,通过输入目标函数库,可以对目标进程的启动标记接口进行监控,由于目标进程在启动时需要创建启动标记对象以禁止多实例启动,因此其必然会调用启动标记接口。在检测到启动标记接口被调用后,获取用于创建标记对象的启动标记信息,通过对其进行重定向,可以得到对应的重定向信息,并利用其创建重定向对象,完成启动。当该目标进程在第二桌面启动时,由于基于重定向信息创建的重定向对象并不是标准的启动标记对象,因此目标进程在第二桌面启动时会认为并没有启动,因此创建对应的启动标记对象并进行启动。至此,目标进程在第一桌面和第二桌面均完成启动,实现了进行多实例启动。由于目标进程利用启动标记对象进行是否已经启动的判断,因此目标函数库仅对启动标记接口进行hook即可,不需要对全部的接口进行hook即可完成多实例启动,因此降低了对目标进程的侵入程度,避免出现兼容性问题,解决了相关技术对进程的侵入程度较大,容易引发兼容性问题的问题。
可选地,重定向模块120,包括:
修改单元,用于基于启动标记信息的信息类型,对启动标记信息进行名称修改处理、路径重定向处理、端口修改处理中的至少一项,得到重定向信息。
可选地,注入模块110,包括:
标识获取单元,用于若检测到目标进程进行了进程注册,则获取对应的启动标识;
桌面判断单元,用于利用启动标识判断目标进程是否由第一桌面拉起;
确定单元,用于若由第一桌面拉起,则确定第一桌面拉起目标进程。
可选地,注入模块110,包括:
回调信号判断单元,用于判断是否检测到目标进程对应的模块加载回调信号;
注入单元,用于若检测到模块加载回调信号,则向目标进程中注入目标函数库。
可选地,还包括:
写监控模块,用于利用目标函数库对第一目标进程的写接口进行监控;第一目标进程为第一桌面内的目标进程;
数据加密模块,用于若检测到第一目标进程调用写接口,则获取待写数据,并利用加密驱动对待写数据进行加密,得到加密数据;
存储模块,用于基于加密数据对应的存储路径存储加密数据。
可选地,存储模块,包括:
路径加密单元,用于利用加密驱动对存储路径进行路径重定向处理,得到加密路径;
加密存储单元,用于在加密路径下存储加密数据。
可选地,还包括:
读监控模块,用于利用目标函数库对第一目标进程的读接口进行监控;
路径确定模块,用于若检测到第一目标进程调用读接口,则获取读请求,并确定读请求对应的目标加密路径;
数据解密模块,用于利用加密驱动从目标加密路径下获取目标加密数据,并对目标加密数据进行解密处理,得到读数据;
输出模块,用于利用加密驱动将读数据发送至第一目标进程。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的应用启动方法可相互对应参照。
请参考图7,图7为本申请实施例提供的一种应用启动方法所适用的一种硬件组成框架示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的应用启动方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。在本实施例中,存储器102中至少存储有用于实现以下功能的程序和/或数据:
当第一桌面拉起目标进程时,向所述目标进程注入目标函数库,并利用所述目标函数库对启动标记接口进行监控;
当检测到所述目标进程调用所述启动标记接口时,获取启动标记信息,并对所述启动标记信息进行重定向,得到重定向信息;
利用所述重定向信息创建重定向对象,完成所述目标进程在所述第一桌面中的启动过程;
当第二桌面拉起所述目标进程时,创建所述启动标记信息对应的启动标记对象,完成所述目标进程在所述第二桌面中的启动过程。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的应用启动方法。
当然,图6所示的电子设备100的结构并不构成对本申请实施例中电子设备的限定,在实际应用中电子设备100可以包括比图6所示的更多或更少的部件,或者组合某些部件。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的应用启动方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的应用启动方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种应用启动方法,其特征在于,包括:
当第一桌面拉起目标进程时,向所述目标进程注入目标函数库,并利用所述目标函数库对启动标记接口进行监控;
当检测到所述目标进程调用所述启动标记接口时,获取启动标记信息,并对所述启动标记信息进行重定向,得到重定向信息;
利用所述重定向信息创建重定向对象,完成所述目标进程在所述第一桌面中的启动过程;
当第二桌面拉起所述目标进程时,创建所述启动标记信息对应的启动标记对象,完成所述目标进程在所述第二桌面中的启动过程。
2.根据权利要求1所述的应用启动方法,其特征在于,所述对所述启动标记信息进行重定向,得到重定向信息,包括:
基于所述启动标记信息的信息类型,对所述启动标记信息进行名称修改处理、路径重定向处理、端口修改处理中的至少一项,得到所述重定向信息。
3.根据权利要求1所述的应用启动方法,其特征在于,所述第一桌面拉起目标进程,包括:
若检测到所述目标进程进行了进程注册,则获取对应的启动标识;
利用所述启动标识判断所述目标进程是否由所述第一桌面拉起;
若由所述第一桌面拉起,则确定检测到第一桌面拉起所述目标进程。
4.根据权利要求1所述的应用启动方法,其特征在于,所述向所述目标进程注入目标函数库,包括:
判断是否检测到所述目标进程对应的模块加载回调信号;
若检测到所述模块加载回调信号,则向所述目标进程中注入所述目标函数库。
5.根据权利要求1至4任一项所述的应用启动方法,其特征在于,还包括:
利用所述目标函数库对第一目标进程的写接口进行监控;所述第一目标进程为所述第一桌面内的所述目标进程;
若检测到所述第一目标进程调用所述写接口,则获取待写数据,并利用加密驱动对所述待写数据进行加密,得到加密数据;
基于所述加密数据对应的存储路径存储所述加密数据。
6.根据权利要求5所述的应用启动方法,其特征在于,所述基于所述加密数据对应的存储路径存储所述加密数据,包括:
利用所述加密驱动对所述存储路径进行路径重定向处理,得到加密路径;
在所述加密路径下存储所述加密数据。
7.根据权利要求6所述的应用启动方法,其特征在于,还包括:
利用所述目标函数库对所述第一目标进程的读接口进行监控;
若检测到所述第一目标进程调用所述读接口,则获取读请求,并确定所述读请求对应的目标加密路径;
利用所述加密驱动从所述目标加密路径下获取目标加密数据,并对所述目标加密数据进行解密处理,得到读数据;
利用所述加密驱动将所述读数据发送至所述第一目标进程。
8.一种应用启动装置,其特征在于,包括:
注入模块,用于当第一桌面拉起目标进程时,向所述目标进程注入目标函数库,并利用所述目标函数库对启动标记接口进行监控;
重定向模块,用于当检测到所述目标进程调用所述启动标记接口时,获取启动标记信息,并对所述启动标记信息进行重定向,得到重定向信息;
第一启动模块,用于利用所述重定向信息创建重定向对象,完成所述目标进程在所述第一桌面中的启动过程;
第二启动模块,用于当第二桌面拉起所述目标进程时,创建所述启动标记信息对应的启动标记对象,完成所述目标进程在所述第二桌面中的启动过程。
9.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的应用启动方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的应用启动方法。
CN202110169089.4A 2021-02-07 2021-02-07 一种应用启动方法、装置、电子设备及存储介质 Active CN112905260B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110169089.4A CN112905260B (zh) 2021-02-07 2021-02-07 一种应用启动方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110169089.4A CN112905260B (zh) 2021-02-07 2021-02-07 一种应用启动方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112905260A true CN112905260A (zh) 2021-06-04
CN112905260B CN112905260B (zh) 2024-02-23

Family

ID=76123659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110169089.4A Active CN112905260B (zh) 2021-02-07 2021-02-07 一种应用启动方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112905260B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986379A (zh) * 2021-10-26 2022-01-28 北京字节跳动网络技术有限公司 一种应用启动方法、装置、计算机设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124161A1 (en) * 2001-03-05 2002-09-05 Moyer William C. Data processing system having redirecting circuitry and method therefor
CN102929716A (zh) * 2012-11-07 2013-02-13 北京亿赛通科技发展有限责任公司 一种启动多进程的方法
CN103559446A (zh) * 2013-11-13 2014-02-05 厦门市美亚柏科信息股份有限公司 一种基于安卓系统的设备的动态病毒检测方法和装置
CN104318179A (zh) * 2014-10-30 2015-01-28 成都卫士通信息产业股份有限公司 基于文件重定向技术的虚拟化安全桌面
CN109117664A (zh) * 2018-07-19 2019-01-01 北京明朝万达科技股份有限公司 应用程序的访问控制方法和装置
US10462216B1 (en) * 2018-05-04 2019-10-29 Citrix Systems, Inc. WebRTC API redirection with interception techniques

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124161A1 (en) * 2001-03-05 2002-09-05 Moyer William C. Data processing system having redirecting circuitry and method therefor
CN102929716A (zh) * 2012-11-07 2013-02-13 北京亿赛通科技发展有限责任公司 一种启动多进程的方法
CN103559446A (zh) * 2013-11-13 2014-02-05 厦门市美亚柏科信息股份有限公司 一种基于安卓系统的设备的动态病毒检测方法和装置
CN104318179A (zh) * 2014-10-30 2015-01-28 成都卫士通信息产业股份有限公司 基于文件重定向技术的虚拟化安全桌面
US10462216B1 (en) * 2018-05-04 2019-10-29 Citrix Systems, Inc. WebRTC API redirection with interception techniques
CN109117664A (zh) * 2018-07-19 2019-01-01 北京明朝万达科技股份有限公司 应用程序的访问控制方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986379A (zh) * 2021-10-26 2022-01-28 北京字节跳动网络技术有限公司 一种应用启动方法、装置、计算机设备和存储介质
CN113986379B (zh) * 2021-10-26 2023-12-15 抖音视界有限公司 一种应用启动方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112905260B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
KR102546601B1 (ko) 정적 바이너리 계측을 사용하여 커널 제어-흐름 무결성을 보호하기 위한 방법 및 장치
US8694981B2 (en) Shared resource dependencies
US8200962B1 (en) Web browser extensions
KR102324336B1 (ko) 사용자 장치 및 그것에 대한 무결성 검증 방법
US11822654B2 (en) System and method for runtime detection, analysis and signature determination of obfuscated malicious code
US8438640B1 (en) Method and apparatus for reverse patching of application programming interface calls in a sandbox environment
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
US20140101768A1 (en) Limiting the Functionality of a Software Program Based on a Security Model
JPWO2012046406A1 (ja) 情報処理装置およびアプリケーション不正連携防止方法
CN110889691B (zh) 一种信息显示方法、装置及设备
US10908948B2 (en) Multiple application instances in operating systems that utilize a single process for application execution
CN113961259A (zh) 启动引导程序加载方法、装置、系统、电子设备及介质
CN111062032A (zh) 异常检测方法和系统及计算机可读存储介质
CN108830077B (zh) 一种脚本检测方法、装置及终端
CN112905260A (zh) 一种应用启动方法、装置、电子设备及存储介质
CN106203148B (zh) 未经授权的数据访问阻断方法及具备该功能的计算装置
CN108009039B (zh) 终端信息的记录方法、装置、存储介质及电子设备
CN115408667A (zh) 应用程序内容的侵权检测方法和系统
US10503929B2 (en) Visually configurable privacy enforcement
KR101207434B1 (ko) 이종의 디지털 문서 보호 시스템 간의 충돌 방지 시스템 및 방법
CN115562732A (zh) 一种开机方法、电子设备及计算机存储介质
CN108228299B (zh) 显示方法及电子设备
WO2020135129A1 (zh) 加载应用的插件的方法、装置和终端
CN112632518A (zh) 数据访问方法、装置、终端及存储介质
JP2021005375A (ja) 難読化解除方法および装置

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