CN103218550B - 软件安装方法、服务器和终端 - Google Patents
软件安装方法、服务器和终端 Download PDFInfo
- Publication number
- CN103218550B CN103218550B CN201310090228.XA CN201310090228A CN103218550B CN 103218550 B CN103218550 B CN 103218550B CN 201310090228 A CN201310090228 A CN 201310090228A CN 103218550 B CN103218550 B CN 103218550B
- Authority
- CN
- China
- Prior art keywords
- software
- terminal
- code
- server
- operation result
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000005194 fractionation Methods 0.000 claims description 54
- 238000004891 communication Methods 0.000 claims description 45
- 238000009434 installation Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000011900 installation process Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种软件安装方法、服务器和终端,其中,方法包括:服务器接收终端发送的软件下载请求,软件下载请求包括终端标识以及软件标识,服务器根据软件标识获取对应的软件代码中的第一部分,并将软件代码的第一部分下发给终端,终端在运行第一部分的过程中,向服务器发送调用请求,调用第二部分的运行结果,完成软件安装。本发明中,终端仅运行服务器下发的第一部分代码,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高应用软件的安全性。
Description
技术领域
本发明涉及通信技术,尤其涉及一种软件安装方法、服务器和终端。
背景技术
现有技术中,服务器的内容数字版权加密保护系统(Digital RightsManagement,DRM)对需要下发给终端的应用软件进行加密,将加密的密钥保存在授权文件中,并采用公钥对授权文件进行加密,将加密后的应用软件和加密后的授权文件下发给终端,终端采用用户私钥对授权文件进行解密,采用授权文件中的密钥对应用软件进行解密,将解密后的应用软件调入终端的内存运行,完成应用软件的安装。
这种方法中,应用软件在调入内存后,采用明码运行,容易被窥测,导致应用软件的非法复制和线下分发,给电信运营商带来巨大的损失,并极大地影响应用软件开发者的开发积极性。
发明内容
本发明提供一种软件安装方法、服务器和终端,用于解决现有技术中应用软件在安装过程中,调入内存中明码运行导致的应用软件容易被窥测的问题。
本发明的第一个方面是提供一种软件安装方法,包括:
服务器接收终端发送的软件下载请求,所述软件下载请求包括终端标识以及软件标识;
所述服务器根据所述软件标识获取对应的软件代码中的第一部分,并根据所述终端标识将所述第一部分发送给所述终端,所述软件代码包括第一部分和第二部分;
所述服务器接收所述终端发送的调用请求,所述调用请求包括所述软件标识和终端标识;
所述服务器根据所述调用请求中的所述软件标识和所述终端标识,将所述第二部分的运行结果发送给所述终端,以使所述终端根据所述第一部分和所述第二部分的运行结果安装所述软件。
本发明的另一个方面提供一种软件安装方法,包括:
终端向服务器发送软件下载请求,所述软件下载请求包括终端标识以及软件标识;
所述终端接收所述服务器发送的软件代码的第一部分,所述软件代码包括第一部分和第二部分;
所述终端向所述服务器发送调用请求,所述调用请求包括所述软件标识和终端标识;
所述终端接收所述服务器发送的所述第二部分的运行结果;
所述终端根据所述第一部分和所述第二部分的运行结果安装所述软件。
本发明的又一个方面提供一种服务器,包括:
接收模块,用于接收终端发送的软件下载请求,所述软件下载请求包括终端标识以及软件标识;
获取模块,用于根据所述软件标识获取对应的软件代码中的第一部分;
发送模块,用于根据所述终端标识将所述第一部分发送给所述终端,所述软件代码包括第一部分和第二部分;
所述接收模块还用于,接收所述终端发送的调用请求,所述调用请求包括所述软件标识和终端标识;
所述发送模块还用于,根据所述调用请求中的所述软件标识和所述终端标识,将所述第二部分的运行结果发送给所述终端,以使所述终端根据所述第一部分和所述第二部分的运行结果安装所述软件。
本发明的再一个方面提供一种终端,包括:
发送模块,用于向服务器发送软件下载请求,所述软件下载请求包括终端标识以及软件标识;
接收模块,用于接收所述服务器发送的软件代码的第一部分,所述软件代码包括第一部分和第二部分;
所述发送模块还用于,向所述服务器发送调用请求,所述调用请求包括所述软件标识和终端标识;
所述接收模块还用于,接收所述服务器发送的所述第二部分的运行结果;
安装模块,用于根据所述第一部分和所述第二部分的运行结果安装所述软件。
本发明中,通过服务器下发应用软件之前,将应用软件的代码拆分成第一部分和第二部分,将第一部分下发给终端,以使终端根据第一部分和服务器上第二部分的运行结果安装应用软件,从而使终端在安装应用软件的过程中只运行应用软件的第一部分代码,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高了应用软件的安全性。
附图说明
图1为本发明提供的软件安装方法一个实施例的流程图;
图2为本发明提供的软件安装方法又一个实施例的流程图;
图3为本发明中软件代码按一个拆分位置拆分的示意图;
图4为本发明中软件代码按四个拆分位置拆分的示意图;
图5为本发明提供的软件安装方法另一个实施例的流程图;
图6为本发明提供的服务器一个实施例的结构示意图;
图7为本发明提供的服务器又一个实施例的结构示意图;
图8为本发明提供的终端一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的软件安装方法一个实施例的流程图,如图1所示,包括:
101、服务器接收终端发送的软件下载请求,软件下载请求包括终端标识以及软件标识。
服务器可以为应用软件商城侧的内容数字版权加密保护系统(DigitalRights Management,DRM),终端可以为手机终端、掌上电脑或者其他可以下载软件并安装软件的移动终端。终端标识可以为手机的身份标识号码(Identity,ID)、国际移动设备身份码(International Mobile Equipment Identity,IMEI)或者国际移动用户识别码(International Mobile Subscriber IdentificationNumber,IMSI)等,也可以为掌上电脑的ID等。软件标识可以为软件作为商品时的商品ID。
102、服务器根据软件标识获取对应的软件代码中的第一部分,并根据终端标识将第一部分发送给终端,软件代码包括第一部分和第二部分。
服务器可以根据软件标识从应用软件商城中获取与软件标识对应的软件,上述软件是由软件开发者或者软件提供商提前开发、并采用编译器对软件代码进行编译,得到二进制代码形式的软件,将二进制代码形式的软件上传到应用软件商城。上述软件具体指的是程序文件,并不包括数据文件,如图片、图表和数据库等。
应用软件商城中的服务器可以保存软件开发者或者软件提供商提供的多个二进制代码形式的软件。服务器在接收终端发送的软件下载请求之前,可以采用编码分析模块对二进制代码形式的软件进行静态或动态分析,获取软件中的控制流、数据流和模块结构,确定软件中的可独立运行的代码段,从而确定软件中的所有潜在的可拆分点。服务器在接收终端发送的软件下载请求之前,还可以依据最大软件编码分割段数、最小软件编码分割段数、最大代码段长度和最小代码段长度中的一种或多种组合,在潜在的可拆分点中选取数量小于预设最大数量的拆分点。例如,服务器可以在最大软件编码分割段数和最小软件编码分割段数的范围内随机选取特定的分割段数,根据分割段数在潜在的可拆分点中选取拆分点。最大软件编码分割段数、最小软件编码分割段数、最大代码段长度或最小代码段长度,可以由服务器端预先设定,也可以由软件开发者预先设定。
服务器选取拆分点后,可以根据选取的拆分点,确定预拆分方案,根据预拆分方案对软件进行预拆分,得到第一部分软件代码和第二部分软件代码,将第一部分软件代码放置在测试终端,将第二部分代码放置在服务器端,进行模拟运行和测试,根据测试结果确定预拆分方案是否可行,并将可行的预拆分方案确定为拆分方案,保存在服务器中。拆分方案包括软件的拆分位置,还包括拆分后的软件代码段的放置位置。其中,最主要的是确定拆分后的软件代码段中软件开发者或者软件提供商要求进行保护的软件代码段的放置位置。另外,服务器还可以为每个拆分方案设置序列号,按照序列号存储上述拆分方案。不可行的预拆分方案具体指的是,将需要对终端硬件或者终端本地资源进行操作的软件代码段放置在服务器端的预拆分方案,或者,将软件开发者要求进行保护的软件代码段放置在终端的预拆分方案。软件开发者要求进行保护的软件代码段指的是,包含软件开发者要求进行保护的重要算法或函数的软件代码段。
服务器在接收到终端发送的软件下载请求后,根据软件标识获取对应的软件,并根据软件标识对应的数值、终端标识对应的数值中的任意一种或两种,确定软件代码的拆分方案。若软件下载请求中还包括终端请求下发软件的请求时间、软件价格或者终端对应的用户信息,则服务器可以根据软件下载请求中的软件标识对应的数值、终端标识对应的数值、请求时间对应的数值、软件价格对应的数值或者终端对应的用户信息中的一种或多种组合,确定软件代码的拆分方案,根据拆分方案中的拆分位置将软件拆分成第一部分和第二部分。例如,服务器可以将软件的商品ID对应的数值作为序列号,或者将软件的商品ID对应的数值与终端的ID对应的数值进行算数运算、各种函数运算或者其他运算方式等,得到的数值作为序列号,将序列号对应的拆分方案确定为软件代码的拆分方案。其中,拆分位置为能够独立运行的代码段的开始位置或者结束位置。另外,服务器还可以保存拆分成第一部分和第二部分的软件代码。
进一步地,在服务器将软件代码拆分成第一部分和第二部分之后,还可以对软件代码的第一部分采用加密密钥进行加密,将该密钥存入授权证书中,并采用用户公钥对授权证书进行加密,将加密后的第一部分软件代码和加密后的授权证书发送给终端,终端接收到服务器下发的加密后的第一部分软件代码和加密后的授权证书后,采用用户私钥对授权证书进行解密,获取授权证书中的密钥,采用该密钥对加密后的第一部分软件代码的进行解密,获得软件代码的第一部分。
更进一步地,本发明实施例中涉及的软件代码,可以被分为多个第一部分和多个第二部分,即,第一部分和第二部分的数量不做出限制,服务器发送给终端的是所有的第一部分,而在服务器上保存的是所有的第二部分。因此,可以理解的是,拆分位置也可以为多个,而每个拆分位置均是为了拆分出第一部分和第二部分。例如,当服务器根据软件标识、终端标识、终端请求下发软件的请求时间、软件价格或者终端对应的用户信息,确定的软件代码拆分方案包含4个拆分位置,服务器可以根据拆分位置将软件代码划分成5个能够独立运行的代码段,其中,第一个拆分位置在第1个代码段的结束位置,第二个拆分位置在第2个代码段的结束位置,第三个拆分位置在第3个代码段的结束位置,第四个拆分位置在第4个代码段的结束位置。拆分后,服务器可以根据拆分方案中软件代码段的放置位置,将各软件代码段分别放置在服务器端和终端。例如,服务器可以将5个代码段中,序列号为1、3和5的3段代码段作为第一部分,将序列号为2和4的2段代码段作为第二部分,将第一部分放置在终端,第二部分放置在服务器端。又例如,服务器可以将序列号为2和4的2段代码段作为第一部分,将其中的序列号为1、3和5的3段代码段作为第二部分,将第一部分放置在终端,将第二部分放置在服务器端。
如果将其中的序列号为1、3和5的3段代码段作为第一部分,将序列号为2和4的2段代码段作为第二部分,假设5个代码段顺序运行,则当终端运行到第1个代码段的结束位置时,终端可以从服务器调用第2段代码的运行结果,并根据第2段代码的运行结果,运行第3段代码;在第3段代码运行结束时,终端可以从服务器调用第4段代码的运行结果,运行第5段代码,从而完成软件的安装。
103、服务器接收终端发送的调用请求,调用请求包括软件标识和终端标识。
104、服务器根据调用请求中的软件标识和终端标识,将第二部分的运行结果发送给终端,以使终端根据第一部分和第二部分的运行结果安装软件。
服务器可以根据软件标识和终端标识,确定与第一部分软件代码对应的第二部分软件代码,获取第二部分软件代码的运行结果,并发送给终端。
另外,终端成功安装应用软件后,在应用软件的运行过程中,若终端需要服务器中第二部分代码的运行结果,终端也可以向服务器发送调用请求,获取服务器中第二部分代码的运行结果。
本发明实施例中,服务器下发应用软件之前,将应用软件的代码拆分成第一部分和第二部分,将第一部分下发给终端,以使终端根据第一部分和服务器上第二部分的运行结果安装应用软件,从而使终端在安装应用软件的过程中只运行应用软件的第一部分代码,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高了应用软件的安全性。
图2为本发明提供的软件安装方法又一个实施例的流程图,如图2所示,在图1所示实施例的基础上,可以将步骤102拆分成步骤102a和步骤102b,步骤102a、服务器根据软件标识获取对应的软件代码中的第一部分;
步骤102b、服务器根据终端标识将第一部分发送给终端,软件代码包括第一部分和第二部分。
为了确保终端接收到的第二部分的运行结果与终端上的第一部分代码相对应,在步骤102a之后,步骤102b之前,服务器还可以执行下列操作:
105、服务器根据拆分位置,确定通信代码。
通信代码用于指示第一部分代码与第二部分代码之间的对应关系,以服务器根据拆分方案将软件代码划分成5个能够独立运行的代码段为例进行说明,本发明实施例中涉及的软件代码,若被分为1个第一部分和1个第二部分,拆分位置为1个,在第2段代码的结束位置,则第一部分代码包括第1段代码和第2段代码,第二部分代码包括第3段、第4段和第5段代码,如图3所示,假设5个代码段顺序运行,则终端在第2段代码运行结束后,向服务器发送调用请求,调用第3段至第5段代码的运行结果,以使终端完成软件安装。若服务器侧第3段至第5段代码的运行需要终端侧第1段和第2段代码的运行结果,则终端向服务器发送调用请求的过程中,也可以将第1段和第2段代码的运行结果发送给服务器。其中,通信代码用于指示第3段代码的起始位置与第2段代码的结束位置之间的对应关系。
本发明实施例中涉及的软件代码,若被拆分为3个第一部分和2个第二部分,则拆分位置为4个,第一个拆分位置在第1段代码的结束位置,第二个拆分位置在第2段代码的结束位置,第三个拆分位置在第3段代码的结束位置,第四个拆分位置在第4段代码的结束位置,如图4所示。其中,第一部分可以分别为第1段代码、第3段代码和第5段代码,第二部分可以分别为第2段代码和第4段代码,则终端在第1段代码运行结束后,从服务器调用第2段代码的运行结果,通信代码用于指示第1段代码的结束位置与第2段代码的开始位置之间的对应关系,从而终端可以根据第2段代码的运行结果运行第3段代码;在第3段代码运行结束后,终端从服务器调用第4段代码的运行结果,通信代码用于指示第3段代码的结束位置与第4段代码的开始位置之间的对应关系,从而终端可以根据第4段代码的运行结果运行第5段代码,完成软件安装。
另外,若服务器上第2段代码的运行需要以第1段代码的运行结果为基础,终端也可以将第一部分代码中的第1段代码的运行结果发送给服务器,以使服务器根据第1段代码的运行结果,运行第2段代码,获得第2段代码的运行结果。
106、服务器在第一部分和第二部分中分别嵌入通信代码,以使终端根据通信代码确定第二部分的运行结果为与第一部分对应的运行结果。
以服务器根据拆分方案将软件代码划分成5个能够独立运行的代码段为例进行说明,本发明实施例中涉及的软件代码,当软件中的拆分位置为一个时,拆分位置可以位于第2段代码的结束位置,通信代码可以分别嵌入第2段代码的结束位置以及第3段代码的开始位置,用于指示第2段代码的结束位置与第3段代码的起始位置之间的对应关系。当服务器在第一部分代码和第二部分代码中分别嵌入通信代码后,在接收到终端发送的调用请求时,服务器发送给终端的第3段至第5段代码的运行结果中还可以包括通信代码,终端可以对第一部分代码中嵌入的通信代码和服务器发送给终端的运行结果中的通信代码进行比较,若相同,则终端确定第3段代码的开始位置与第2段代码的结束位置对应,第3段至第5段代码的运行结果为终端安装应用软件所需的运行结果。当软件中的拆分位置为多个时,例如,拆分位置为4个,分别位于第1段代码、第2段代码、第3段代码、第4段代码的结束位置,第一部分代码包括第1段代码、第3段代码和第5段代码,第二部分代码包括第2段代码和第4段代码时,通信代码可以分为两部分,第一部分通信代码用于指示第1段代码的结束位置与第2段代码的起始位置的对应关系,第二部分通信代码用于指示第3段代码的结束位置与第4段代码的起始位置的对应关系,第一部分通信代码可以分别嵌入第1段代码的结束位置以及第2段代码的起始位置,第二部分代码可以分别嵌入第3段代码的结束位置以及第4段代码的起始位置。当服务器在第一部分代码和第二部分代码中分别嵌入通信代码后,在接收到终端第1次发送的调用请求时,服务器发送给终端的第2段代码的运行结果中还可以包括第一部分通信代码,终端可以对第1段代码嵌入的第一部分通信代码与第2段代码嵌入的第一部分通信代码进行比较,若相同,则终端确定第2段代码的开始位置与第1段代码的结束位置对应,终端可以根据第2段代码的运行结果运行第3段代码。服务器在接收到终端第2次发送的调用请求时,服务器发送给终端的第4段代码的运行结果中还可以包括第二部分通信代码,终端可以对第3段代码嵌入的第二部分通信代码与第4段代码嵌入的第二部分通信代码进行比较,若相同,则终端确定第4段代码的开始位置与第3段代码的结束位置对应,终端可以根据第4段代码的运行结果运行第5段代码,从而终端完成软件的安装。
本发明实施例中,服务器在第一部分和第二部分中分别嵌入通信代码,以使终端在运行第一部分代码时,能够调用第二部分代码的运行结果,并根据通信代码确定第二部分代码的运行结果是否与第一部分代码对应,完成软件的安装,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高了应用软件的安全性。
图5为本发明提供的软件安装方法另一个实施例的流程图,如图5所示,包括:
501、终端向服务器发送软件下载请求,软件下载请求包括终端标识以及软件标识。
终端可以为手机、电脑等终端。当终端对应的用户从应用软件商城购买应用软件时,终端可以向服务器发送软件下载请求,请求下发软件。
502、终端接收服务器发送的软件代码的第一部分,软件代码包括第一部分和第二部分。
503、终端向服务器发送调用请求,调用请求包括软件标识和终端标识。
终端在接收到服务器发送的软件代码的第一部分后,在运行软件代码的第一部分的过程中,可以向服务器发送调用请求,调用第二部分代码的运行结果,根据第二部分代码的运行结果和第一部分代码,完成软件的安装过程。
504、终端接收服务器发送的第二部分的运行结果。
505、终端根据第一部分和第二部分的运行结果安装软件。
终端可以根据软件第二部分代码的运行结果,继续运行第一部分代码,完成软件安装。
进一步地,在图5所示实施例的基础上,为了确保第二部分的运行结果与终端上的第一部分代码相对应,第一部分和第二部分中可以分别嵌入通信代码;终端根据第一部分和第二部分的运行结果安装软件之前,还可以包括:
终端根据通信代码确定第二部分的运行结果为与第一部分对应的运行结果。
本实施例中,终端通过只接收服务器下发的软件的第一部分,在安装软件的过程中,调用服务器中第二部分代码的运行结果,完成软件的安装,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高应用软件的安全性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图6为本发明提供的服务器一个实施例的结构示意图,如图6所示,包括:
接收模块61,用于接收终端发送的软件下载请求,软件下载请求包括终端标识以及软件标识;
获取模块62,用于根据软件标识获取对应的软件代码中的第一部分;
发送模块63,用于根据终端标识将第一部分发送给终端,软件代码包括第一部分和第二部分;
接收模块61还用于,接收终端发送的调用请求,调用请求包括软件标识和终端标识;
发送模块63还用于,根据调用请求中的软件标识和终端标识,将第二部分的运行结果发送给终端,以使终端根据第一部分和第二部分的运行结果安装软件。
本发明实施例提供的服务器与终端交互,以使终端完成软件安装的过程与图1所示实施例中的软件安装过程相同,在此不再赘述,关于本发明实施例提供的服务器与终端交互,使终端完成软件安装的过程可参考图1所示实施例。
本发明实施例中,服务器下发应用软件之前,将应用软件的代码拆分成第一部分和第二部分,将第一部分下发给终端,以使终端根据第一部分和服务器上第二部分的运行结果安装应用软件,从而使终端在安装应用软件的过程中只运行应用软件的第一部分代码,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高了应用软件的安全性。
在图6所示实施例的基础上,服务器还可以包括确定模块64和拆分模块65,如图7所示。获取模块62根据软件标识获取对应的软件代码中的第一部分之前,确定模块64用于,根据软件标识对应的数值、终端标识对应的数值、请求时间对应的数值、软件价格或者终端对应的用户信息中的一种或多种组合,确定软件代码的拆分方案;拆分模块65用于,根据拆分方案中的拆分位置,将软件代码拆分成第一部分和第二部分。
其中,确定模块64根据软件标识对应的数值、终端标识对应的数值、请求时间对应的数值、软件价格或者终端对应的用户信息中的一种或多种组合,确定软件代码的拆分方案之前,服务器可以采用编码分析模块对软件代码进行分析,确定软件中的所有潜在的可拆分点,并根据软件中的所有潜在的可拆分点,确定预拆分方案,根据预拆分方案对软件进行预拆分,得到第一部分软件代码和第二部分软件代码,将第一部分软件代码放置在测试终端,将第二部分代码放置在服务器端,进行模拟运行和测试,根据测试结果确定预拆分方案是否可行,并将可行的预拆分方案确定为拆分方案,保存在服务器中。
更进一步地,在图7所示实施例的基础上,服务器还可以包括:嵌入模块;
为了确保终端接收到的第二部分的运行结果与终端上的第一部分代码相对应,获取模块62根据软件标识获取对应的软件代码中的第一部分之后,根据终端标识将第一部分发送给终端之前,确定模块64还用于,根据拆分位置,确定通信代码;嵌入模块用于,在第一部分和第二部分中分别嵌入通信代码,以使终端根据通信代码确定第二部分的运行结果为与第一部分对应的运行结果。
本发明实施例中,服务器在第一部分和第二部分中分别嵌入通信代码,以使终端在运行第一部分代码时,能够调用第二部分代码的运行结果,并根据通信代码确定第二部分代码的运行结果是否与第一部分代码对应,完成软件的安装,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高了应用软件的安全性。
图8为本发明提供的终端一个实施例的结构示意图,如图8所示,包括:
发送模块81,用于向服务器发送软件下载请求,软件下载请求包括终端标识以及软件标识;
接收模块82,用于接收服务器发送的软件代码的第一部分,软件代码包括第一部分和第二部分;
发送模块81还用于,向服务器发送调用请求,调用请求包括软件标识和终端标识;
接收模块82还用于,接收服务器发送的第二部分的运行结果;
安装模块83,用于根据第一部分和第二部分的运行结果安装软件。
进一步地,为了确保第二部分的运行结果与终端上的第一部分代码相对应,第一部分和第二部分中可以分别嵌入通信代码,终端还可以包括:确定模块;
安装模块83根据第一部分和第二部分的运行结果安装软件之前,确定模块用于,根据通信代码确定第二部分的运行结果为与第一部分对应的运行结果。
本发明实施例中,终端通过与服务器的交互,完成软件安装的过程与图5所示实施例中的软件安装过程相同,在此不再赘述,关于本发明实施例提供的终端与服务器交互,完成软件安装的过程可参考图5所示实施例。
本实施例中,终端通过只接收服务器下发的软件的第一部分,在安装软件的过程中,调用服务器中第二部分代码的运行结果,完成软件的安装,从而实现在终端应用软件安装过程中,无需全部软件代码在用户本地终端的内存中明码运行,避免应用软件容易被窥测,提高应用软件的安全性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种软件安装方法,其特征在于,包括:
服务器接收终端发送的软件下载请求,所述软件下载请求包括终端标识、软件标识、终端请求下发所述软件的请求时间、软件价格或者终端对应的用户信息;
所述服务器根据所述软件标识对应的数值、所述终端标识对应的数值、所述请求时间对应的数值、所述软件价格对应的数值或者所述终端对应的用户信息中的一种或多种组合,确定软件代码的拆分方案;
所述服务器根据所述拆分方案中的拆分位置,将所述软件代码拆分成第一部分和第二部分;
所述服务器根据所述软件标识获取对应的软件代码中的第一部分,并根据所述终端标识将所述第一部分发送给所述终端,所述软件代码包括第一部分和第二部分;
所述服务器接收所述终端发送的调用请求,所述调用请求包括所述软件标识、终端标识;
所述服务器根据所述调用请求中的所述软件标识和所述终端标识,将所述第二部分的运行结果发送给所述终端,以使所述终端根据所述第一部分和所述第二部分的运行结果安装所述软件。
2.根据权利要求1所述的方法,其特征在于,所述服务器根据所述软件标识获取对应的软件代码中的第一部分之前,还包括:
所述服务器根据所述拆分位置,确定通信代码;
所述服务器在所述第一部分和所述第二部分中分别嵌入所述通信代码,以使所述终端根据所述通信代码确定所述第二部分的运行结果为与所述第一部分对应的运行结果。
3.一种软件安装方法,其特征在于,包括:
终端向服务器发送软件下载请求,所述软件下载请求包括终端标识、软件标识、终端请求下发所述软件的请求时间、软件价格或者终端对应的用户信息;
所述终端接收所述服务器发送的软件代码的第一部分,所述软件代码包括第一部分和第二部分;所述第一部分和所述第二部分为所述服务器根据拆分方案中的拆分位置对软件代码进行拆分得到的,所述拆分方案为所述服务器根据所述软件下载请求中的所述软件标识对应的数值、所述终端标识对应的数值、所述请求时间对应的数值、所述软件价格对应的数值或者所述终端对应的用户信息中的一种或多种组合,确定得到的拆分方案;
所述终端向所述服务器发送调用请求,所述调用请求包括所述软件标识和终端标识;
所述终端接收所述服务器发送的所述第二部分的运行结果;
所述终端根据所述第一部分和所述第二部分的运行结果安装所述软件。
4.根据权利要求3所述的方法,其特征在于,所述第一部分和所述第二部分中分别嵌入通信代码;所述终端根据所述第一部分和所述第二部分的运行结果安装所述软件之前,还包括:
所述终端根据所述通信代码确定所述第二部分的运行结果为与所述第一部分对应的运行结果。
5.一种服务器,其特征在于,包括:
接收模块,用于接收终端发送的软件下载请求,所述软件下载请求包括终端标识、软件标识、终端请求下发所述软件的请求时间、软件价格或者终端对应的用户信息;
确定模块用于,根据软件标识对应的数值、终端标识对应的数值、请求时间对应的数值、软件价格或者终端对应的用户信息中的一种或多种组合,确定软件代码的拆分方案;
拆分模块用于,根据所述拆分方案中的拆分位置,将所述软件代码拆分成所述第一部分和所述第二部分;
获取模块,用于根据所述软件标识获取对应的软件代码中的第一部分;
发送模块,用于根据所述终端标识将所述第一部分发送给所述终端,所述软件代码包括第一部分和第二部分;
所述接收模块还用于,接收所述终端发送的调用请求,所述调用请求包括所述软件标识和终端标识;
所述发送模块还用于,根据所述调用请求中的所述软件标识和所述终端标识,将所述第二部分的运行结果发送给所述终端,以使所述终端根据所述第一部分和所述第二部分的运行结果安装所述软件。
6.根据权利要求5所述的服务器,其特征在于,所述服务器还包括:嵌入模块;
所述获取模块根据所述软件标识获取对应的软件代码中的第一部分之前,所述确定模块还用于,根据所述拆分位置,确定通信代码;
所述嵌入模块用于,在所述第一部分和所述第二部分中分别嵌入所述通信代码,以使所述终端根据所述通信代码确定所述第二部分的运行结果为与所述第一部分对应的运行结果。
7.一种终端,其特征在于,包括:
发送模块,用于向服务器发送软件下载请求,所述软件下载请求包括终端标识、软件标识、终端请求下发所述软件的请求时间、软件价格或者终端对应的用户信息;
接收模块,用于接收所述服务器发送的软件代码的第一部分,所述软件代码包括第一部分和第二部分;所述第一部分和所述第二部分为所述服务器根据拆分方案中的拆分位置对软件代码进行拆分得到的,所述拆分方案为所述服务器根据所述软件下载请求中的所述软件标识对应的数值、所述终端标识对应的数值、所述请求时间对应的数值、所述软件价格对应的数值或者所述终端对应的用户信息中的一种或多种组合,确定得到的拆分方案;
所述发送模块还用于,向所述服务器发送调用请求,所述调用请求包括所述软件标识和终端标识;
所述接收模块还用于,接收所述服务器发送的所述第二部分的运行结果;
安装模块,用于根据所述第一部分和所述第二部分的运行结果安装所述软件。
8.根据权利要求7所述的终端,其特征在于,所述第一部分和所述第二部分中分别嵌入通信代码;所述终端还包括:确定模块;
所述安装模块根据所述第一部分和所述第二部分的运行结果安装所述软件之前,所述确定模块用于,根据所述通信代码确定所述第二部分的运行结果为与所述第一部分对应的运行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310090228.XA CN103218550B (zh) | 2013-03-20 | 2013-03-20 | 软件安装方法、服务器和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310090228.XA CN103218550B (zh) | 2013-03-20 | 2013-03-20 | 软件安装方法、服务器和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218550A CN103218550A (zh) | 2013-07-24 |
CN103218550B true CN103218550B (zh) | 2015-10-21 |
Family
ID=48816327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310090228.XA Active CN103218550B (zh) | 2013-03-20 | 2013-03-20 | 软件安装方法、服务器和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218550B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104392151B (zh) * | 2014-11-27 | 2017-12-26 | 北京深思数盾科技股份有限公司 | 一种软件保护方法及系统 |
CN105450662A (zh) * | 2015-12-25 | 2016-03-30 | 小米科技有限责任公司 | 加密方法及装置 |
CN106372463B (zh) * | 2016-08-22 | 2018-09-11 | 北京深思数盾科技股份有限公司 | 中间件保护方法、装置及系统 |
CN106446612A (zh) * | 2016-09-12 | 2017-02-22 | 珠海市魅族科技有限公司 | 一种主题试用的方法及装置 |
CN106446616A (zh) * | 2016-09-14 | 2017-02-22 | 金蝶软件(中国)有限公司 | 一种软件保护方法及装置 |
CN107360254A (zh) * | 2017-08-22 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种文件下载方法、装置、服务器及终端 |
CN112199644A (zh) * | 2020-10-09 | 2021-01-08 | 平安科技(深圳)有限公司 | 移动终端应用程序安全检测方法、系统、终端及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1455329A (zh) * | 2002-04-29 | 2003-11-12 | 上海广电信息产业股份有限公司 | 控制用户从网络下载软件的方法 |
CN101571900A (zh) * | 2009-06-01 | 2009-11-04 | 薛明 | 一种软件版权保护方法、设备和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003084850A (ja) * | 2001-09-07 | 2003-03-19 | Matsushita Electric Ind Co Ltd | 建築物及びアプリケーションソフトウェア提供システム |
-
2013
- 2013-03-20 CN CN201310090228.XA patent/CN103218550B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1455329A (zh) * | 2002-04-29 | 2003-11-12 | 上海广电信息产业股份有限公司 | 控制用户从网络下载软件的方法 |
CN101571900A (zh) * | 2009-06-01 | 2009-11-04 | 薛明 | 一种软件版权保护方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103218550A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103218550B (zh) | 软件安装方法、服务器和终端 | |
US9066226B2 (en) | Initialization of embedded secure elements | |
CN109948347B (zh) | 一种数据存储方法及装置、服务器及可读存储介质 | |
CN104346167A (zh) | 生成应用渠道包的方法及装置 | |
CN110661748B (zh) | 一种日志的加密方法、解密方法及装置 | |
CN111274611A (zh) | 数据脱敏方法、装置及计算机可读存储介质 | |
CN107196907B (zh) | 一种安卓so文件的保护方法及装置 | |
CN105007577A (zh) | 一种虚拟sim卡参数管理方法、移动终端及服务器 | |
CN104573435A (zh) | 用于终端权限管理的方法和终端 | |
CN101189617A (zh) | 电子设备、更新服务器装置、密钥更新装置 | |
CN104283853A (zh) | 一种提高信息安全性的方法、终端设备及网络设备 | |
US20180067777A1 (en) | Application protection method, server, and terminal | |
CN104199657A (zh) | 开放平台的调用方法及装置 | |
CN109241707A (zh) | 应用程序的混淆方法、装置和服务器 | |
EP1785901B1 (en) | Secure License Key Method and System | |
CN103152346B (zh) | 海量用户的隐私保护方法、服务器和系统 | |
CN108768938B (zh) | 一种网页数据加解密方法及装置 | |
CN108898008B (zh) | 应用程序的运行方法和装置 | |
CN106020868B (zh) | 一种智能卡固件更新方法及系统 | |
CN112231702A (zh) | 应用保护方法、装置、设备及介质 | |
CN102693597A (zh) | 基于远程票据信息的本地打印方法和装置 | |
CN104219626A (zh) | 一种身份认证的方法和装置 | |
CN113868713B (zh) | 一种数据验证方法、装置、电子设备及存储介质 | |
CN106487505A (zh) | 密钥管理、获取方法及相关装置和系统 | |
CN111224826B (zh) | 基于分布式系统的配置更新方法、设备、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |