CN107766162A - 一种操作指令的执行方法、装置及终端设备 - Google Patents
一种操作指令的执行方法、装置及终端设备 Download PDFInfo
- Publication number
- CN107766162A CN107766162A CN201711033509.6A CN201711033509A CN107766162A CN 107766162 A CN107766162 A CN 107766162A CN 201711033509 A CN201711033509 A CN 201711033509A CN 107766162 A CN107766162 A CN 107766162A
- Authority
- CN
- China
- Prior art keywords
- agency
- operating result
- default
- operation requests
- default process
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种操作指令的执行方法、装置及终端设备,包括:建立预设进程与代理之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;在成功建立所述通信连接后,向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果;接收所述代理执行所述操作请求对应的操作后返回的操作结果,从而使得预设进程能够通过代理实现对所述预设进程未授权对象的访问。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种操作指令的执行方法、装置及终端设备。
背景技术
计算机操作系统平台为了系统的安全、稳定,为不同的进程设置了不同的操作权限。例如,微软从Window8系统开始,就引入了一种进程隔离机制(AppContainer)。进程隔离机制(AppContainer)提供了更细粒度的权限控制。
然而,这种进程隔离机制也使得受隔离的进程无法直接访问某些对象。例如,一些智能卡的驱动进程运行在AppContainer中,当使用智能卡时,运行在AppContainer中的智能卡驱动进程无法与智能卡通信,并且无法显示输入密码的用户界面,这就导致引入进程隔离机制的终端设备无法使用智能卡。
发明内容
有鉴于此,本发明实施例提供了一种操作指令的执行方法、装置及终端设备,以解决进程无法访问未授权对象的问题。
本发明实施例的第一方面提供了一种操作指令的执行方法,包括:
建立预设进程与代理之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
在成功建立所述通信连接后,向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果;
接收所述代理执行所述操作请求对应的操作后返回的操作结果。
本发明实施例的第二方面提供了一种操作指令的执行方法,包括:
建立代理与预设进程之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
在成功建立所述通信连接后,接收所述预设进程发送的操作请求;
执行所述操作请求对应的操作获得操作结果,并将所述操作结果返回至所述预设进程。
本发明实施例的第三方面提供了一种操作指令的执行装置,包括:
第一通信连接建立模块,用于建立预设进程与代理之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
操作请求发送模块,用于在成功建立所述通信连接后,向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果。
操作结果接收模块,用于接收所述代理执行所述操作请求对应的操作后返回的操作结果。
本发明实施例的第四方面提供了一种操作指令的执行装置,包括:
第二通信连接建立模块,用于建立代理与预设进程之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
操作请求接收模块,用于在成功建立所述通信连接后,接收所述预设进程发送的操作请求;
操作结果返回模块,用于执行所述操作请求对应的操作获得操作结果,并将所述操作结果返回至所述预设进程。
本发明实施例的第五方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例第一方面提供的所述方法的步骤。
本发明实施例的第六方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例第二方面提供的所述方法的步骤。
本发明实施例的第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
本发明实施例的第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现本发明实施例第二方面提供的所述方法的步骤。
本发明实施例通过为预设进程设置一个代理进程或者代理服务,在成功建立所述预设进程与所述代理之间的通信连接后,所述预设进程向所述代理发送操作请求,所述代理根据所述操作请求执行所述预设进程没有权限执行的操作获得操作结果,代理将获得的操作结果返回给所述预设进程,这样预设进程就能够访问所述预设进程未授权对象并获得访问结果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种操作指令的执行方法的实现流程示意图;
图2是本发明又一实施例提供的一种操作指令的执行方法的实现流程示意图;
图3是本发明一实施例提供的操作指令的执行装置的示意框图;
图4是本发明又一实施例提供的操作指令的执行装置的示意框图;
图5是本发明一实施例提供的终端设备的示意框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1是本发明一实施例提供的操作指令的执行方法的实现流程示意图,本发明实施例是以所述预设进程一侧描述,如图所示该方法可以包括以下步骤:
步骤S101,建立预设进程与代理之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务。
在本发明实施例中,所述预设进程是终端设备中运行受限的进程,例如,运行在进程隔离机制AppContainer中权限受限的进程,具体可以是智能卡驱动进程;还可以是没有权限访问某个对象的进程,例如没有权限访问操作系统的进程。所述代理是指能够代替所述预设进程访问所述预设进程没有权限访问的对象的进程或者服务,需要运行在所述进程隔离机制之外。既然所述代理能够访问所述预设进程无法访问的未授权对象,所以,所述代理的权限高于所述预设进程的权限。而所述代理要代替所述预设进程完成对未授权对象的访问就需要在所述预设进程和所述代理之间建立通信连接。访问的未授权对象是所述代理有权限访问、而所述预设进程没有权项访问的对象。在本发明实施例中,所述通信连接可以是非直接的通信连接,例如,通过所述预设进程和所述代理均可访问的存储空间实现二者的通信连接。
具体的,所述建立预设进程与代理之间的通信连接包括:打开私有命名空间及所述私有命名空间中的内核对象,以建立与所述代理的通信连接。
在本发明实施例中,所述私有命名空间是指所述预设进程和所述代理均有权限访问的存储空间。若要通过所述存储空间实现所述预设进程和所述代理之间的通信连接,需要先通过所述代理在所述私有命名空间创建内核对象。
所述内核对象包括:
内存映射文件Shm,用于保存所述操作请求或所述操作结果的数据;
请求事件Event_Request,用于标识发送的所述操作请求事件;
响应事件Event_Response,用于标识返回的所述操作结果事件;
互斥体Mutex,用于在所述互斥体的锁定状态,锁定所述互斥体的预设进程之外的其它预设进程无法访问所述内存映射文件;在所述互斥体的解锁状态,所述预设进程以及所述预设进程之外的其它预设进程均可访问所述内存映射文件。
所述预设进程在所述私有命名空间检测到所述内存映射文件、互斥体之后,打开所述内存映射文件、互斥体就表示所述预设进程与所述代理之间成功建立了通信连接。所述内存映射文件是由一个文件到一块内存的映射,允许应用程序把文件映射到一个进程的函数。所述互斥体能够实现互相排斥,也就是能够禁止多个进程同时进入受保护的代码临界区。所述预设进程打开所述互斥体实际上是获得了私有命名空间中内存映射文件的所有权,所述预设进程之外的其它预设进程无法读取所述私有命名空间中的内存映射文件。
当然,在实际应用中,所述代理还可以在私有命名空间创建事件,以便于所述预设进程发起事件请求,所述代理发起事件响应。
步骤S102,在成功建立所述通信连接后,向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果。
在本发明实施例中,若成功建立通信连接,所述预设进程若要完成对预设进程的未授权对象的访问或者操作,就需要将操作请求发送给所述代理,所述代理在接收到所述操作请求后,就可以根据所述操作请求中的操作指令执行相应的操作获得操作结果。当然,所述操作请求中指明了需要所述代理对所述预设进程未授权的哪一个对象执行操作,所述代理在获得操作结果后,就可以返回所述操作结果。
作为本发明另一实施例,所述向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果包括:
智能卡的驱动进程向所述代理发送与所述智能卡进行通信的请求,以便于所述代理与所述智能卡进行通信;
和/或,智能卡的驱动进程向所述代理发送显示用户界面的请求,以便于所述代理显示用户界面。
示例性的,我们以智能卡的驱动进程为例,智能卡的驱动进程运行在AppContainer中,由于AppContainer是一个受限的运行环境,即权限较低的运行环境,运行在AppContainer中的智能卡驱动进程是无法与智能卡进行通信的,所以,我们可以设置一个代理,通过这个代理传达所述智能卡驱动进程的访问请求并完成对智能卡的访问,在完成对智能卡的访问后再将所述访问结果返回,这样就可以使得权限较低的智能卡驱动进程能够完成对智能卡的访问。同时,即使能够完成对智能卡的访问,但是由于还需要显示用户界面让用户输入智能卡的密码,而显示用户界面的操作所述智能卡的驱动进程也是无法实现的,所以还需要通过一个代理代替所述智能卡驱动进程实现用户界面的显示,并将用户通过所述用户界面输入的密码发送给调用者。实现用户界面显示的代理可以与对智能卡的访问的代理可以是相同的代理,也可以设置为两个不同的代理。同理,显示用户界面的过程具体可以将用户界面的显示转化为一种请求,将这个显示用户界面的请求发送给代理,代理完成显示用户界面,当用户在用户界面上输入密码后,代理关闭所述用户界面并将所述用户输入的密码返回。当然,所述代理可以是一个进程,还可以是window服务。
需要说明的一点是,为了使得所述预设进程之外的其它进程无法向所述代理发送操作请求,需要在向所述代理发送操作请求之前,锁定所述互斥体。
具体的,所述向所述代理发送操作请求包括:
将所述操作请求封装为结构化的数据写入内存映射文件,并设置所述请求事件以向所述代理发起事件请求,以便于所述代理接收到所述事件请求后从所述内存映射文件解析出操作请求执行所述操作请求对应的操作获得操作结果并将所述操作结果写入所述内存映射文件并设置所述响应事件以生成事件响应。
在本发明实施例中,由于所述预设进程与所述代理之间的通信连接是通过所述私有命名空间中的内存映射文件实现的,所以,所述预设进程需要将所述操作请求封装为结构化的数据,所述结构化的数据是指将原始数据按照一定的规则进行处理从而获得计算机能够识别的数据。在将所述结构化的数据写入内存映射文件后,就可以发起事件请求。而所述代理在接收到所述事件请求后从私有命名空间的内存映射文件中解析出所述操作请求,就可以执行所述操作请求并获得操作结果,所述代理将所述操作结果返回所述预设进程的过程同所述预设进程将所述操作请求发送给所述代理的过程一致,也是通过将所述操作结果封装为结构化的数据写入内存映射文件,并生成事件响应。
所述操作请求可以是如前所述的智能卡的驱动进程与所述智能卡通信的请求,还可以是显示用户界面请求。
步骤S103,接收所述代理执行所述操作请求对应的操作后返回的操作结果。
具体的,所述接收所述代理执行所述操作请求对应的操作后返回的操作结果包括:在接收到所述代理发送的事件响应后,读取所述内存映射文件中结构化的数据,从所述结构化的数据中解析出操作结果,并解锁所述互斥体。
在本发明实施例中,所述预设进程在接收到所述事件响应后,从私有命名空间读取内存映射文件中的结构化数据,从而解析出操作结果。在获得操作结果后,就可以解锁互斥体,这样,其它进程也能够继续通过该代理完成对其它进程未授权对象的访问。
所述返回的操作结果可以是所述代理与所述智能卡通信后返回的通信结果,还可以是代理显示的用户界面,用户在所述代理显示的用户界面中输入的数据。
本发明实施例通过为预设进程设置一个代理进程或者代理服务,在成功建立所述预设进程与所述代理之间的通信连接后,所述预设进程向所述代理发送操作请求,所述代理根据所述操作请求执行所述预设进程没有权限执行的操作获得操作结果,代理将获得的操作结果返回给所述预设进程,这样权限较低的预设进程就能够访问预设进程的未授权对象并获得访问结果。
图2是本发明又一实施例提供的操作指令的执行方法的流程示意图,本发明实施例是以所述代理一侧描述,如图所示该方法可以包括以下步骤:
步骤S201,建立代理与预设进程之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务。
步骤S201与步骤S101的内容一致,可参照步骤S101的描述,在此不再赘述。
具体的,所述建立代理与预设进程之间的通信连接包括:在私有命名空间建立内核对象,并将所述内核对象设置为所述代理和所述预设进程均可访问,以便于所述预设进程能够在所述私有命名空间打开所述内核对象建立与所述代理的通信连接。
在本发明实施例中,内核对象可参照图2所示实施例中的描述,在此不再赘述。所述代理需要在私有命名空间建立内存映射文件、互斥体,还可以建立事件,在建立所述内存映射文件、互斥体、事件之后,为了使得所述预设进程能够访问所述私有命名空间,需要将所述内存映射文件、互斥体、事件设置为所述代理和所述预设进程均可访问。例如,在系统访问控制列表(System ACL)中将所述内存映射文件、互斥体、事件设置为低完整性级别,在任意访问控制列表(Discretionary ACL)中将所述内存映射文件、互斥体、事件设置为所有用户和所有应用均可访问。
步骤S202,在成功建立所述通信连接后,接收所述预设进程发送的操作请求。
具体的,所述接收所述预设进程发送的操作请求包括:在获得所述预设进程发送的事件请求后,读取所述内存映射文件中结构化的数据,并从所述结构化的数据中解析出操作请求。
在本发明实施例中,由于所述预设进程与所述代理并未建立直接的通信连接,而是通过私有命名空间建立的间接的通信连接,所以所述代理并不会直接接收到操作请求,而是需要去私有命名空间读取内存映射文件中结构化的数据,从所述结构化的数据中解析出操作请求。所述代理获得操作请求的过程与所述预设进程发送操作请求的过程是相反的操作过程。
步骤S203,执行所述操作请求对应的操作获得操作结果,并将所述操作结果返回至所述预设进程。
在本发明实施例中,所述代理解析出操作请求后,就需要根据操作请求对所述预设进程未授权对象执行相应的操作获得操作结果,当然,所述操作请求中指明了是对所述预设进程未授权的哪一个对象执行相应的操作。
具体的,所述将所述操作结果返回至所述预设进程包括:
将所述操作结果封装为结构化的数据写入内存映射文件,并设置所诉响应事件以向所述预设进程发起事件响应,以便于所述预设进程接收到所述事件响应后读取所述内存映射文件中结构化的数据从所述结构化的数据中解析出操作结果。
在本发明实施例中,所述代理将所述操作结果返回给所述预设进程的过程与所述预设进程将所述操作请求发送给所述预设进程一样,需要将所述操作结果封装为结构化的数据写入内存映射文件,并向所述预设进程发起事件响应。
需要说明的是,在本申请实施例中所述预设进程和代理的通信连接方式上采用内存映射文件的方式作为举例,但是在实际应用中,还可以通过其它多进程间的通信方式实现所述预设进程和代理之间的通信连接,例如采用套接字的方式、消息队列的方式。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图3是本发明一实施例提供的操作指令的执行装置的示意框图,本发明实施例是以所述预设进程一侧描述,为了便于说明,仅示出与本发明实施例相关的部分。
该操作指令的执行装置3可以是内置于终端设备(例如手机、计算机、笔记本)内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中。
所述操作指令的执行装置3包括:
第一通信连接建立模块31,用于建立预设进程与代理之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
操作请求发送模块32,用于在成功建立所述通信连接后,向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果。
操作结果接收模块33,用于接收所述代理执行所述操作请求对应的操作后返回的操作结果。
可选的,所述预设进程运行在进程隔离机制中,所述代理运行在所述进程隔离机制之外。
可选的,所述第一通信连接建立模块31具体用于:
打开私有命名空间及所述私有命名空间中的内核对象,以建立与所述代理的通信连接。
可选的,所述内核对象包括:
内存映射文件,用于保存所述操作请求或所述操作结果的数据;
请求事件,用于标识发送的所述操作请求事件;
响应事件,用于标识返回的所述操作结果事件;
互斥体,用于在所述互斥体的锁定状态,锁定所述互斥体的预设进程之外的其它预设进程无法访问所述内存映射文件;在所述互斥体的解锁状态,所述预设进程以及所述预设进程之外的其它预设进程均可访问所述内存映射文件。
可选的,所述操作指令的执行装置3还包括:
锁定模块34,用于在向所述代理发送操作请求之前,锁定所述互斥体,以便于所述预设进程之外的其它进程无法向所述代理发送操作请求。
可选的,所述操作请求发送模块32具体用于:
将所述操作请求封装为结构化的数据写入内存映射文件,并设置所述请求事件以向所述代理发起事件请求,以便于所述代理接收到所述事件请求后从所述内存映射文件解析出操作请求执行所述操作请求对应的操作获得操作结果并将所述操作结果写入所述内存映射文件并设置所述响应事件以生成事件响应。
可选的,所述操作结果接收模块33具体用于:
在接收到所述代理发送的事件响应后,读取所述内存映射文件中结构化的数据,从所述结构化的数据中解析出操作结果,并解锁所述互斥体。
可选的,所述操作请求发送模块32具体用于:
智能卡的驱动进程向所述代理发送与所述智能卡进行通信的请求,以便于所述代理与所述智能卡进行通信;
和/或,智能卡的驱动进程向所述代理发送显示用户界面的请求,以便于所述代理显示用户界面;
可选的,所述操作结果接收模块33具体用于:
接收所述代理与所述智能卡进行通信后返回的通信结果;
和/或,接收用户在所述代理显示的用户界面中输入的数据。
图4是本发明一实施例提供的操作指令的执行装置的示意框图,本发明实施例是以所述代理一侧描述,为了便于说明,仅示出与本发明实施例相关的部分。
该操作指令的执行装置4可以是内置于终端设备(例如手机、计算机、笔记本)内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中。
所述操作指令的执行装置4包括:
第二通信连接建立模块41,用于建立代理与预设进程之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
操作请求接收模块42,用于在成功建立所述通信连接后,接收所述预设进程发送的操作请求;
操作结果返回模块43,用于执行所述操作请求对应的操作获得操作结果,并将所述操作结果返回至所述预设进程。
可选的,所述预设进程运行在进程隔离机制中,所述代理运行在所述进程隔离机制之外。
可选的,所述第二通信连接建立模块41具体用于:
在私有命名空间建立内存映射文件、互斥体,并将所述内存映射文件、互斥体设置为所述代理和所述预设进程均可访问,以便于所述预设进程能够在所述私有命名空间打开所述内存映射文件、互斥体建立与所述代理的通信连接。
可选的,所述操作请求接收模块42具体用于:
在获得所述预设进程发送的事件请求后,读取所述内存映射文件中结构化的数据,并从所述结构化的数据中解析出操作请求;
可选的,所述操作结果返回模块43具体用于:
将所述操作结果封装为结构化的数据写入内存映射文件,并设置所述响应事件以向所述预设进程发起事件响应,以便于所述预设进程接收到所述事件响应后读取所述内存映射文件中结构化的数据从所述结构化的数据中解析出操作结果。
可选的,所述操作请求接收模块42具体用于:
接收智能卡的驱动进程发送的与所述智能卡进行通信的请求;
和/或,接收所述智能卡的驱动进程发送的显示用户界面的请求;
可选的,所述操作结果返回模块43具体用于:
与所述智能卡进行通信获得通信结果,并将所述通信结果发送给所述智能卡驱动进程;
和/或,显示用户界面,并将用户通过所述用户界面输入的数据发送给所述智能卡驱动进程。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将所述操作指令的执行装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图5是本发明一实施例提供的终端设备的示意框图。如图5所示,该实施例的终端设备5包括:一个或多个处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个操作指令的执行方法实施例中的步骤,例如图1所示的步骤S101至S103,当然还可以是图2所示的步骤S201至S203。或者,所述处理器50执行所述计算机程序52时实现上述操作指令的执行装置实施例中各模块的功能,例如图3所示模块31至33的功能,当然,还可以是图4所示模块41至43的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述终端设备5中的执行过程。
例如,所述计算机程序52可以被分割成图3所示的第一通信连接建立模块、操作请求发送模块、操作结果接收模块。
所述第一通信连接建立模块,用于建立预设进程与代理之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
所述操作请求发送模块,用于在成功建立所述通信连接后,向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果。
所述操作结果接收模块,用于接收所述代理执行所述操作请求对应的操作后返回的操作结果。
其它模块的描述可参照图3所示的实施例中的描述,在此不再赘述。
当然,在实际应用中,所述计算机程序52还可以被分割成图4所示的第二通信连接建立模块、操作请求接收模块、操作结果返回模块。
所述第二通信连接建立模块,用于建立代理与预设进程之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
所述操作请求接收模块,用于在成功建立所述通信连接后,接收所述预设进程发送的操作请求;
所述操作结果返回模块,用于执行所述操作请求对应的操作获得操作结果,并将所述操作结果返回至所述预设进程。
其它模块的描述可参照图4所示的实施例中的描述,在此不再赘述。
在实际应用中,所述图3和图4所示的各个模块还可以集成在一个终端设备中。
所述终端设备包括但不仅限于处理器50、存储器51。本领域技术人员可以理解,图5仅仅是终端设备5的一个示例,并不构成对终端设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入设备、输出设备、网络接入设备、总线等。
所述处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述终端设备5的内部存储单元,例如终端设备5的硬盘或内存。所述存储器51也可以是所述终端设备5的外部存储设备,例如所述终端设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的终端设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (11)
1.一种操作指令的执行方法,其特征在于,包括:
建立预设进程与代理之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
在成功建立所述通信连接后,向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果;
接收所述代理执行所述操作请求对应的操作后返回的操作结果。
2.如权利要求1所述的操作指令的执行方法,其特征在于,所述预设进程运行在进程隔离机制中,所述代理运行在所述进程隔离机制之外。
3.如权利要求1或2所述的操作指令的执行方法,其特征在于,所述建立预设进程与代理之间的通信连接包括:
打开私有命名空间及所述私有命名空间中的内核对象,以建立与所述代理的通信连接。
4.如权利要求3所述的操作指令的执行方法,其特征在于,所述内核对象包括:
内存映射文件,用于保存所述操作请求或所述操作结果的数据;
请求事件,用于标识发送的所述操作请求事件;
响应事件,用于标识返回的所述操作结果事件;
互斥体,用于在所述互斥体的锁定状态,锁定所述互斥体的预设进程之外的其它预设进程无法访问所述内存映射文件;在所述互斥体的解锁状态,所述预设进程以及所述预设进程之外的其它预设进程均可访问所述内存映射文件。
5.如权利要求4所述的操作指令的执行方法,其特征在于,在向所述代理发送操作请求之前,还包括:
锁定所述互斥体,以便于所述预设进程之外的其它进程无法向所述代理发送操作请求;
所述向所述代理发送操作请求包括:
将所述操作请求封装为结构化的数据写入内存映射文件,并设置所述请求事件以向所述代理发起事件请求,以便于所述代理接收到所述事件请求后从所述内存映射文件解析出操作请求执行所述操作请求对应的操作获得操作结果并将所述操作结果写入所述内存映射文件并设置所述响应事件以生成事件响应;
所述接收所述代理执行所述操作请求对应的操作后返回的操作结果包括:
在接收到所述代理发送的事件响应后,读取所述内存映射文件中结构化的数据,从所述结构化的数据中解析出操作结果,并解锁所述互斥体。
6.如权利要求1所述的操作指令的执行方法,其特征在于,所述向所述代理发送操作请求,以便于所述代理执行所述操作请求对应的操作获得操作结果,并返回所述操作结果包括:
智能卡的驱动进程向所述代理发送与所述智能卡进行通信的请求,以便于所述代理与所述智能卡进行通信;
和/或,智能卡的驱动进程向所述代理发送显示用户界面的请求,以便于所述代理显示用户界面;
所述接收所述代理执行所述操作请求对应的操作后返回的操作结果包括:
接收所述代理与所述智能卡进行通信后返回的通信结果;
和/或,接收用户在所述代理显示的用户界面中输入的数据。
7.一种操作指令的执行方法,其特征在于,包括:
建立代理与预设进程之间的通信连接,所述代理是指所述预设进程的代理进程或代理服务;
在成功建立所述通信连接后,接收所述预设进程发送的操作请求;
执行所述操作请求对应的操作获得操作结果,并将所述操作结果返回至所述预设进程。
8.如权利要求7所述的操作指令的执行方法,其特征在于,所述建立代理与预设进程之间的通信连接包括:
在私有命名空间建立内核对象,并将所述内核对象设置为所述代理和所述预设进程均可访问,以便于所述预设进程能够在所述私有命名空间打开所述内核对象建立与所述代理的通信连接;
所述预设进程运行在进程隔离机制中,所述代理运行在所述进程隔离机制之外;
所述内核对象包括:
内存映射文件,用于保存所述操作请求或所述操作结果的数据;
请求事件,用于标识发送的所述操作请求事件;
响应事件,用于标识返回的所述操作结果事件;
互斥体,用于在所述互斥体的锁定状态,锁定所述互斥体的预设进程之外的其它预设进程无法访问所述内存映射文件;在所述互斥体的解锁状态,所述预设进程以及所述预设进程之外的其它预设进程均可访问所述内存映射文件。
9.如权利要求8所述的操作指令的执行方法,其特征在于,所述接收所述预设进程发送的操作请求包括:
在获得所述预设进程发送的事件请求后,读取所述内存映射文件中结构化的数据,并从所述结构化的数据中解析出操作请求;
所述将所述操作结果返回至所述预设进程包括:
将所述操作结果封装为结构化的数据写入内存映射文件,并设置所述响应事件以向所述预设进程发起事件响应,以便于所述预设进程接收到所述事件响应后读取所述内存映射文件中结构化的数据从所述结构化的数据中解析出操作结果。
10.如权利要求7所述的操作指令的执行方法,其特征在于,所述接收所述预设进程发送的操作请求;执行所述操作请求对应的操作获得操作结果,并将所述操作结果返回至所述预设进程包括:
接收智能卡的驱动进程发送的与所述智能卡进行通信的请求;与所述智能卡进行通信获得通信结果,并将所述通信结果发送给所述智能卡的驱动进程;
和/或,接收所述智能卡的驱动进程发送的显示用户界面的请求;显示用户界面,并将用户通过所述用户界面输入的数据发送给所述智能卡的驱动进程。
11.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至10任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711033509.6A CN107766162A (zh) | 2017-10-30 | 2017-10-30 | 一种操作指令的执行方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711033509.6A CN107766162A (zh) | 2017-10-30 | 2017-10-30 | 一种操作指令的执行方法、装置及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107766162A true CN107766162A (zh) | 2018-03-06 |
Family
ID=61270762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711033509.6A Pending CN107766162A (zh) | 2017-10-30 | 2017-10-30 | 一种操作指令的执行方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766162A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026287A1 (en) * | 2004-07-30 | 2006-02-02 | Lockheed Martin Corporation | Embedded processes as a network service |
CN103970601A (zh) * | 2013-02-06 | 2014-08-06 | 北京壹人壹本信息科技有限公司 | 执行操作指令方法和装置 |
CN104216862A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种用户进程与系统服务之间的通信方法、装置 |
CN102469035B (zh) * | 2010-11-05 | 2016-01-20 | 腾讯科技(深圳)有限公司 | 跨进程通信的方法和装置 |
-
2017
- 2017-10-30 CN CN201711033509.6A patent/CN107766162A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026287A1 (en) * | 2004-07-30 | 2006-02-02 | Lockheed Martin Corporation | Embedded processes as a network service |
CN102469035B (zh) * | 2010-11-05 | 2016-01-20 | 腾讯科技(深圳)有限公司 | 跨进程通信的方法和装置 |
CN103970601A (zh) * | 2013-02-06 | 2014-08-06 | 北京壹人壹本信息科技有限公司 | 执行操作指令方法和装置 |
CN104216862A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种用户进程与系统服务之间的通信方法、装置 |
Non-Patent Citations (3)
Title |
---|
余水平: "进程间通信及内存映射文件方法分析", 《硅谷》 * |
田伟 等: "VC中利用内存映射文件实现进程间通信的方法", 《电脑编程技巧与维护》 * |
阿东: "内核对象 Windows via C/C++", 《HTTPS://WWW.CNBLOGS.COM/ADON/ARCHIVE/2009/10/11/1580784.HTML》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107632825A (zh) | 一种业务软件开发方法及装置 | |
CN110310205B (zh) | 一种区块链数据监控方法、装置、设备和介质 | |
US7278582B1 (en) | Hardware security module (HSM) chip card | |
CN107807991A (zh) | 用于处理区块链数据的方法及装置 | |
CN107792009A (zh) | 基于驾驶员身份认证的车辆启动方法及装置 | |
NZ313777A (en) | Data exchange system comprising portable and non-portable data processing units suitable for use in smart cards | |
JPH11175402A (ja) | カード型記憶媒体及びカード型記憶媒体のアクセス制御方法並びにカード型記憶媒体用アクセス制御プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN107820210A (zh) | 一种签到方法、移动终端及计算机可读存储介质 | |
CN108365950A (zh) | 金融自助设备密钥的生成方法及装置 | |
CN112559635B (zh) | 以太坊联盟链节点的业务处理方法、装置、设备及介质 | |
CN109491671A (zh) | 诊断软件下载方法、装置、终端设备及存储介质 | |
CN107463767A (zh) | 云his医保数据处理方法及系统 | |
CN107564204A (zh) | 一种大额取款方法及atm设备 | |
CN107908940A (zh) | 一种指纹识别的方法及终端设备 | |
CN109559219A (zh) | 一种贷款资金监控方法和装置 | |
CN110390184A (zh) | 用于在云中执行应用的方法、装置和计算机程序产品 | |
CN110351358A (zh) | 一种车联网信息安全传输及智能预警系统 | |
CN108334346A (zh) | 一种业务控制流程的开发方法及装置 | |
CN108830590A (zh) | 一种信息的获取方法、信息的获取装置及终端设备 | |
CN109582320A (zh) | 写码方法及终端设备 | |
CN110505655A (zh) | 数据指令处理方法、存储介质及蓝牙盾 | |
CN108540335A (zh) | 设备分析报告的管理方法及管理装置 | |
CN108830596A (zh) | 一种信息的获取方法、信息的获取装置及终端设备 | |
CN107623699A (zh) | 一种基于云环境的加密系统 | |
CN108399544A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180306 |