CN111596942A - 一种软件升级强制触发方法、装置及软件升级系统 - Google Patents

一种软件升级强制触发方法、装置及软件升级系统 Download PDF

Info

Publication number
CN111596942A
CN111596942A CN202010438089.5A CN202010438089A CN111596942A CN 111596942 A CN111596942 A CN 111596942A CN 202010438089 A CN202010438089 A CN 202010438089A CN 111596942 A CN111596942 A CN 111596942A
Authority
CN
China
Prior art keywords
version number
data packet
software
client
server
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
Application number
CN202010438089.5A
Other languages
English (en)
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.)
Shandong University
Original Assignee
Sichuan Pusi Kechuang Information Technology 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 Sichuan Pusi Kechuang Information Technology Co ltd filed Critical Sichuan Pusi Kechuang Information Technology Co ltd
Priority to CN202010438089.5A priority Critical patent/CN111596942A/zh
Publication of CN111596942A publication Critical patent/CN111596942A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本发明涉及软/硬件测试技术领域,公开了一种软件升级强制触发方法、装置及软件升级系统。通过本发明创造,提供了一种基于软件版本号的修改来欺骗触发软件自动更新逻辑的新方法,即通过网络流量劫持工具,可拦截获取在客户端软件程序与服务器之间传输的数据包,并通过对数据包中软件版本号的修改,可使客户端软件程序/和服务器误认为客户端软件版本为低版本,进而触发软件自动更新逻辑,最终在客户端侧得到用于软件分析和/或软件测试的最新软件升级包,不但能够高效且无限次触发目标软件或设备的自动升级功能,还无需每次测试都购买新设备,大大降低了测试成本,便于实际应用和推广。

Description

一种软件升级强制触发方法、装置及软件升级系统
技术领域
本发明属于软/硬件测试技术领域,具体地涉及一种软件升级强制触发方法、装置及软件升级系统。
背景技术
自动升级功能普遍存在于软件或者硬件设备中,强制触发自动升级功能对软件测试和程序分析都有着很重要的意义。例如,对于程序分析而言,通过触发软件或者设备的自动升级功能,能够获取到目标程序的升级包,升级包对程序分析非常重要,通过它可以分析出软件在哪些方面进行了何种升级,添加了哪些功能;另外很多物联网设备(IoT,Internetof Things)的升级包包含有完整的设备固件,这样就避免了物理提固件(拆开设备)所带来的困难和损坏。而对于软件测试而言,覆盖率是一个非常重要的指标;宽泛的讲,它指的是在测试过程中成功测试的功能占软件总功能数的比例,越高的覆盖率就意味着测试越完善,越有可能触发bug或漏洞;但是软件可能存在某些在特定条件下才能触发的功能,导致测试覆盖率不高,其中一个很关键的功能便是自动升级;自动触发升级功能也就意味着更加完善的测试。
但是目前无论是在软件测试方面或者程序分析方面都没有一个很好的方法来触发自动升级,这是一个困扰软件测试人员和程序分析人员的难点。例如在程序分析中,如果想得到IoT设备的升级包,程序分析人员一般会购买运行低版本固件的设备,然后在设备自动升级过程中通过截取网络流量获得升级包。但是该方式存在如下弊端:(1)成本高,每次测试都要购买新设备;(2)具有未知性,目标设备不一定能买到(或不一定存在)低版本版;(3)不可重复,升级功能初次触发后目标设备将会自动升级,之后将无法触发。
发明内容
为了解决现有软/硬件测试过程中所存在的难以随时触发升级功能以获取最新软件升级包的技术问题,本发明目的在于提供一种软件升级强制触发方法、装置、计算机设备、计算机可读存储介质和软件升级系统,可以随时触发升级功能来获取最新软件升级包,从而无需每次测试都购买新设备,降低了测试成本。
第一方面,本发明提供了一种软件升级强制触发方法,包括:
通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包,其中,所述第一数据包包含有所述客户端软件程序的客户端侧版本号;
将所述第一数据包中的客户端侧版本号修改为低版本号;
向所述服务器传送修改后的所述第一数据包,以便所述服务器在根据所述客户端侧版本号与服务器侧最新版本号的对比结果判定客户端软件版本为低版本时,向所述客户端软件程序反馈第二数据包,其中,所述第二数据包包含有所述服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址;
通过网络流量劫持工具,拦截获取所述第二数据包;
将所述第二数据包中的服务器侧最新版本号修改为高版本号;
向所述客户端软件程序传送修改后的所述第二数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
基于上述发明内容,提供了一种基于软件版本号的修改来欺骗触发软件自动更新逻辑的新方法,即通过网络流量劫持工具,可拦截获取在客户端软件程序与服务器之间传输的数据包,并通过对数据包中软件版本号的修改,可使服务器和客户端软件程序均误认为客户端软件版本为低版本,进而触发软件自动更新逻辑,最终在客户端侧得到用于软件分析和/或软件测试的最新软件升级包,不但能够高效且无限次触发目标软件或设备的自动升级功能,还无需每次测试都购买新设备,大大降低了测试成本,便于实际应用和推广。
在一个可能的设计中,在通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包之前,所述方法还包括:获取所述网络流量劫持工具的工作IP地址和工作端口,根据所述工作IP地址和所述工作端口设置对应所述客户端软件程序的代理服务器配置信息。
在一个可能的设计中,当所述第一数据包和所述第二数据包均为超文本传输协议数据包时,所述网络流量劫持工具采用中间人攻击工具mitmproxy。
第二方面,本发明提供了一种软件升级强制触发装置,包括第一拦截获取单元、第一修改单元、第一传送单元、第二拦截获取单元、第二修改单元和第二传送单元;
所述第一拦截获取单元,用于通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包,其中,所述第一数据包包含有所述客户端软件程序的客户端侧版本号;
所述第一修改单元,通信连接所述第一拦截获取单元,用于将所述第一数据包中的客户端侧版本号修改为低版本号;
所述第一传送单元,通信连接所述第一修改单元,用于向所述服务器传送修改后的所述第一数据包,以便所述服务器在根据所述客户端侧版本号与服务器侧最新版本号的对比结果判定客户端软件版本为低版本时,向所述客户端软件程序反馈第二数据包,其中,所述第二数据包包含有所述服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址;
所述第二拦截获取单元,用于通过网络流量劫持工具,拦截获取所述第二数据包;
所述第二修改单元,通信连接所述第二拦截获取单元,用于将所述第二数据包中的服务器侧最新版本号修改为高版本号;
所述第二传送单元,通信连接所述第二修改单元,用于向所述客户端软件程序传送修改后的所述第二数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
第三方面,本发明提供了另一种软件升级强制触发方法,包括:
通过网络流量劫持工具,拦截获取服务器向客户端软件程序反馈的第三数据包,其中,所述第三数据包包含有用于响应所述客户端软件程序的最新版本号查询请求而反馈的服务器侧最新版本号;
将所述第三数据包中的服务器侧最新版本号修改为高版本号;
向所述客户端软件程序传送修改后的所述第三数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包。
基于上述发明内容,提供了另一种基于软件版本号的修改来欺骗触发软件自动更新逻辑的新方法,即通过网络流量劫持工具,可拦截获取在客户端软件程序与服务器之间传输的数据包,并通过对数据包中软件版本号的修改,可使客户端软件程序误认为客户端软件版本为低版本,进而触发软件自动更新逻辑,最终也在客户端侧得到用于软件分析和/或软件测试的最新软件升级包,不但能够高效且无限次触发目标软件或设备的自动升级功能,还无需每次测试都购买新设备,大大降低了测试成本,便于实际应用和推广。
在一个可能的设计中,所述第三数据包还包含有与所述服务器侧最新版本号对应的软件升级包下载地址,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
第四方面,本发明提供了另一种软件升级强制触发装置,包括第三拦截获取单元、第三修改单元和第三传送单元;
所述第三拦截获取单元,用于通过网络流量劫持工具,拦截获取服务器向客户端软件程序反馈的第三数据包,其中,所述第三数据包包含有用于响应所述客户端软件程序的最新版本号查询请求而反馈的服务器侧最新版本号;
所述第三修改单元,通信连接所述第三拦截获取单元,用于将所述第三数据包中的服务器侧最新版本号修改为高版本号;
所述第三传送单元,通信连接所述第三修改单元,用于向所述客户端软件程序传送修改后的所述第三数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包。
第五方面,本发明提供了一种计算机设备,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如在第一方面或在第三方面中的所述方法。
第六方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如在第一方面或在第三方面中的所述方法。
第七方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如在第一方面或在第三方面中的所述方法。
第八方面,本发明提供了一种软件升级系统,包括有通信相连的客户端设备和服务器,其中,所述客户端设备运行有客户端软件程序和用于执行如在第一方面或第三方面所述软件升级强制触发方法的程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的第一种软件升级强制触发方法的流程示意图。
图2是本发明提供的第一种软件升级强制触发装置的结构示意图。
图3是本发明提供的第二种软件升级强制触发方法的流程示意图。
图4是本发明提供的第二种软件升级强制触发装置的结构示意图。
图5是本发明提供的计算机设备的结构示意图。
图6是本发明提供的软件升级系统的结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本文中若将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,在本文中若将单元称作与另一个单元“直接相连”或“直接耦合”时,表示不存在中间单元。另外,应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
应当理解,本文使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解,若术语“包括”、“包括了”、“包含”和/或“包含了”在本文中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选可能设计中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
如图1所示,本实施例第一方面提供的所述软件升级强制触发方法,适用于在客户端侧执行,并可以但不限于包括有如下步骤S101~S106。
S101.通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包,其中,所述第一数据包可以但不限于包含有所述客户端软件程序的客户端侧版本号。
在所述步骤S101中,所述网络流量劫持工具是一种用于在客户端侧与服务器侧之间实现查看流量、抓包(即拦截获取数据包)、改包(即修改数据包)及重放数据包(即继续向客户端侧或服务器侧传送数据包)等功能的脚本工具,虽然常被黑客所利用而实现非法目的,但是也可以作为被客户方所允许运行的合法工具,实现特殊应用目的。根据客户端侧与服务器侧之间传输协议的不同,有不同的劫持方式及劫持工具,但都需要先在客户端侧进行网络流量劫持工具的配置,以便后续进行抓包、改包及重放数据包,即在所述步骤S101之前,还包括有如下步骤:获取网络流量劫持工具的工作IP地址和工作端口,根据所述工作IP地址和所述工作端口设置对应客户端软件程序的代理服务器配置信息。
具体的,以所述第一数据包和后续其它数据包均为超文本传输协议数据包为例,所述网络流量劫持工具可以但不限于采用现有的中间人攻击工具mitmproxy,即首先用中间人攻击工具mitmproxy生成证书,并将该证书安装到客户端设备(例如手机)中,使得工具mitmproxy能解密HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议)数据包;然后启动工具mitmproxy,并记下其工作的IP地址和端口;再然后在客户端设备上设置代理服务器配置信息时,填入前面获取的IP地址和端口;最后启动客户端软件程序APP。如此所述客户端软件程序APP与服务器的所有流量都会先经过工具mitmproxy,然后再由工具mitmproxy抵达对方,进而使得可以通过工具mitmproxy对交互的数据包进行抓包、改包及重放数据包等。
在所述步骤S101中,所述客户端软件程序即为在客户端侧所想要获取最新软件升级包的目标软件。所述第一数据包可以但不限于在启动所述客户端软件程序时,自动触发发送,以便服务器对比所述客户端侧版本号与服务器侧最新版本号,并根据对比结果决定是否要对所述客户端软件程序进行远程升级。此外,所述服务器为响应所述客户端软件程序升级的现有专用服务器,其在发现客户端软件版本为低版本时,会主动将服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址传送给客户端软件程序,以便客户端软件程序通过所述软件升级包下载地址下载得到最新软件升级包;而在发现客户端软件版本为最新版本时,会返回“无需升级”的指示信息。
S102.将所述第一数据包中的客户端侧版本号修改为低版本号。
在所述步骤S102中,举例的,若当前的客户端侧版本号为5.0版本,则可修改为4.0版本(即低版本号),如此可便于服务器误认为客户端软件版本为低版本。
S103.向所述服务器传送修改后的所述第一数据包,以便所述服务器在根据所述客户端侧版本号与服务器侧最新版本号的对比结果判定客户端软件版本为低版本时,向所述客户端软件程序反馈第二数据包,其中,所述第二数据包可以但不限于包含有所述服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址。
在所述步骤S103之后,由于所述客户端侧版本号已修改为低版本号,使得服务器必然会认为客户端软件版本为低版本,并主动将服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址传送给客户端软件程序。
S104.通过网络流量劫持工具,拦截获取所述第二数据包。
S105.将所述第二数据包中的服务器侧最新版本号修改为高版本号。
在所述步骤S105中,举例的,若当前的服务器侧最新版本号为5.0版本,则可修改为6.0版本(即高版本号),如此可便于客户端软件程序误认为客户端软件版本为低版本,进而根据所述软件升级包下载地址下载获取最新软件升级包。
S106.向所述客户端软件程序传送修改后的所述第二数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
在所述步骤S106之后,由于所述服务器侧最新版本号已修改为高版本号,使得客户端软件程序必然会认为客户端软件版本为低版本,进而根据所述软件升级包下载地址下载获取最新软件升级包,如此可将获取的最新软件升级包用于软件分析和软件测试中,无需每次测试都购买新设备,大大降低了测试成本。
由此通过前述步骤S101~S106所详细描述的软件升级强制触发方法,提供了一种基于软件版本号的修改来欺骗触发软件自动更新逻辑的新方法,即通过网络流量劫持工具,可拦截获取在客户端软件程序与服务器之间传输的数据包,并通过对数据包中软件版本号的修改,可使服务器和客户端软件程序均误认为客户端软件版本为低版本,进而触发软件自动更新逻辑,最终在客户端侧得到用于软件分析和/或软件测试的最新软件升级包,不但能够高效且无限次触发目标软件或设备的自动升级功能,还无需每次测试都购买新设备,大大降低了测试成本,便于实际应用和推广。
如图2所示,本实施例第二方面提供了一种实现第一方面所述软件升级强制触发方法的虚拟装置,包括第一拦截获取单元、第一修改单元、第一传送单元、第二拦截获取单元、第二修改单元和第二传送单元;所述第一拦截获取单元,用于通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包,其中,所述第一数据包包含有所述客户端软件程序的客户端侧版本号;所述第一修改单元,通信连接所述第一拦截获取单元,用于将所述第一数据包中的客户端侧版本号修改为低版本号;所述第一传送单元,通信连接所述第一修改单元,用于向所述服务器传送修改后的所述第一数据包,以便所述服务器在根据所述客户端侧版本号与服务器侧最新版本号的对比结果判定客户端软件版本为低版本时,向所述客户端软件程序反馈第二数据包,其中,所述第二数据包包含有所述服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址;所述第二拦截获取单元,用于通过网络流量劫持工具,拦截获取所述第二数据包;所述第二修改单元,通信连接所述第二拦截获取单元,用于将所述第二数据包中的服务器侧最新版本号修改为高版本号;所述第二传送单元,通信连接所述第二修改单元,用于向所述客户端软件程序传送修改后的所述第二数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
本实施例第二方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面所述的软件升级强制触发方法,于此不再赘述。
如图3所示,本实施例第三方面提供的所述软件升级强制触发方法,也适用于在客户端侧执行,并可以但不限于包括有如下步骤S201~S203。
S201.通过网络流量劫持工具,拦截获取服务器向客户端软件程序反馈的第三数据包,其中,所述第三数据包可以但不限于包含有用于响应所述客户端软件程序的最新版本号查询请求而反馈的服务器侧最新版本号。
在所述步骤S201中,所述网络流量劫持工具及所述服务器的描述,可参见第一方面中所述步骤S101的内容,于此不再赘述。此外,所述服务器作为响应所述客户端软件程序升级的现有专用服务器,还可以在收到来自客户端软件程序的最新版本号查询请求时,反馈所述服务器侧最新版本号,以便所述客户端软件程序对比服务器侧最新版本号与本地客户端侧版本号,并根据对比结果决定是否要向服务器发起升级请求。
S202.将所述第三数据包中的服务器侧最新版本号修改为高版本号。
在所述步骤S202中,举例的,若当前的服务器侧最新版本号为5.0版本,则可修改为6.0版本(即高版本号),如此可便于客户端软件程序误认为客户端软件版本为低版本,进而向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包。
S203.向所述客户端软件程序传送修改后的所述第三数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包。
在所述步骤S203之后,由于所述服务器侧最新版本号已修改为高版本号,使得客户端软件程序必然会认为客户端软件版本为低版本,进而采用现有常规方式向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包,如此可将获取的最新软件升级包用于软件分析和软件测试中,无需每次测试都购买新设备,大大降低了测试成本。此外,所述第三数据包还可包含有与所述服务器侧最新版本号对应的软件升级包下载地址,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包,此时将无需发起所述软件升级请求,直接下载获取最新软件升级包。
由此通过前述步骤S201~S206所详细描述的软件升级强制触发方法,提供了另一种基于软件版本号的修改来欺骗触发软件自动更新逻辑的新方法,即通过网络流量劫持工具,可拦截获取在客户端软件程序与服务器之间传输的数据包,并通过对数据包中软件版本号的修改,可使客户端软件程序误认为客户端软件版本为低版本,进而触发软件自动更新逻辑,最终也在客户端侧得到用于软件分析和/或软件测试的最新软件升级包,不但能够高效且无限次触发目标软件或设备的自动升级功能,还无需每次测试都购买新设备,大大降低了测试成本,便于实际应用和推广。
如图4所示,本实施例第四方面提供了一种实现第三方面所述软件升级强制触发方法的虚拟装置,包括第三拦截获取单元、第三修改单元和第三传送单元;所述第三拦截获取单元,用于通过网络流量劫持工具,拦截获取服务器向客户端软件程序反馈的第三数据包,其中,所述第三数据包包含有用于响应所述客户端软件程序的最新版本号查询请求而反馈的服务器侧最新版本号;所述第三修改单元,通信连接所述第三拦截获取单元,用于将所述第三数据包中的服务器侧最新版本号修改为高版本号;所述第三传送单元,通信连接所述第三修改单元,用于向所述客户端软件程序传送修改后的所述第三数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包。
本实施例第四方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第三方面所述的软件升级强制触发方法,于此不再赘述。
如图5所示,本实施例第五方面提供了一种执行在第一方面或第三方面中所述软件升级强制触发方法的计算机设备,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如在第一方面或第三方面中所述的软件升级强制触发方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(RAM,Random-Access Memory)、只读存储器(ROM,Read-Only Memory)、闪存(Flash Memory)、先进先出存储器(FIFO,First InputFirst Output)和/或先进后出存储器(FILO,First Input Last Output)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器;所述收发器可以但不限于为WiFi(无线保真)无线收发器、蓝牙无线收发器、GPRS(General Packet Radio Service,通用分组无线服务技术)无线收发器和/或ZigBee(紫蜂协议,基于IEEE802.15.4标准的低功耗局域网协议)无线收发器等。此外,所述计算机设备还可以但不限于包括电源模块、显示屏和其它必要的部件。
本实施例第五方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见如上第一方面或第三方面所述的软件升级强制触发方法,于此不再赘述。
本实施例第六方面提供了一种存储包含在第一方面或第三方面中所述软件升级强制触发方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如在第一方面或第三方面中所述的软件升级强制触发方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例第六方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见如上第一方面或第三方面所述的软件升级强制触发方法,于此不再赘述。
本实施例第七方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如在第一方面或第三方面中所述的软件升级强制触发方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
如图6所示,本实施例第八方面提供了一种软件升级系统,包括有通信相连的客户端设备和服务器,其中,所述客户端设备运行有客户端软件程序和用于执行如第一方面或如第三方面所述软件升级强制触发方法的程序。
本实施例第八方面提供的前述软件升级系统的工作过程、工作细节和技术效果,可以参见如上第一方面或第三方面所述的软件升级强制触发方法,于此不再赘述。
以上所描述的实施例仅仅是示意性的,若涉及到作为分离部件说明的单元,其可以是或者也可以不是物理上分开的;若涉及到作为单元显示的部件,其可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。

Claims (10)

1.一种软件升级强制触发方法,其特征在于,包括:
通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包,其中,所述第一数据包包含有所述客户端软件程序的客户端侧版本号;
将所述第一数据包中的客户端侧版本号修改为低版本号;
向所述服务器传送修改后的所述第一数据包,以便所述服务器在根据所述客户端侧版本号与服务器侧最新版本号的对比结果判定客户端软件版本为低版本时,向所述客户端软件程序反馈第二数据包,其中,所述第二数据包包含有所述服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址;
通过网络流量劫持工具,拦截获取所述第二数据包;
将所述第二数据包中的服务器侧最新版本号修改为高版本号;
向所述客户端软件程序传送修改后的所述第二数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
2.如权利要求1所述的一种软件升级强制触发方法,其特征在于,在通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包之前,所述方法还包括:获取所述网络流量劫持工具的工作IP地址和工作端口,根据所述工作IP地址和所述工作端口设置对应所述客户端软件程序的代理服务器配置信息。
3.如权利要求1所述的一种软件升级强制触发方法,其特征在于,当所述第一数据包和所述第二数据包均为超文本传输协议数据包时,所述网络流量劫持工具采用中间人攻击工具mitmproxy。
4.一种软件升级强制触发装置,其特征在于,包括第一拦截获取单元、第一修改单元、第一传送单元、第二拦截获取单元、第二修改单元和第二传送单元;
所述第一拦截获取单元,用于通过网络流量劫持工具,拦截获取客户端软件程序向服务器发送的第一数据包,其中,所述第一数据包包含有所述客户端软件程序的客户端侧版本号;
所述第一修改单元,通信连接所述第一拦截获取单元,用于将所述第一数据包中的客户端侧版本号修改为低版本号;
所述第一传送单元,通信连接所述第一修改单元,用于向所述服务器传送修改后的所述第一数据包,以便所述服务器在根据所述客户端侧版本号与服务器侧最新版本号的对比结果判定客户端软件版本为低版本时,向所述客户端软件程序反馈第二数据包,其中,所述第二数据包包含有所述服务器侧最新版本号和与所述服务器侧最新版本号对应的软件升级包下载地址;
所述第二拦截获取单元,用于通过网络流量劫持工具,拦截获取所述第二数据包;
所述第二修改单元,通信连接所述第二拦截获取单元,用于将所述第二数据包中的服务器侧最新版本号修改为高版本号;
所述第二传送单元,通信连接所述第二修改单元,用于向所述客户端软件程序传送修改后的所述第二数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
5.一种软件升级强制触发方法,其特征在于,包括:
通过网络流量劫持工具,拦截获取服务器向客户端软件程序反馈的第三数据包,其中,所述第三数据包包含有用于响应所述客户端软件程序的最新版本号查询请求而反馈的服务器侧最新版本号;
将所述第三数据包中的服务器侧最新版本号修改为高版本号;
向所述客户端软件程序传送修改后的所述第三数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包。
6.如权利要求5所述的一种软件升级强制触发方法,其特征在于,所述第三数据包还包含有与所述服务器侧最新版本号对应的软件升级包下载地址,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,根据所述软件升级包下载地址下载获取最新软件升级包。
7.一种软件升级强制触发装置,其特征在于,包括第三拦截获取单元、第三修改单元和第三传送单元;
所述第三拦截获取单元,用于通过网络流量劫持工具,拦截获取服务器向客户端软件程序反馈的第三数据包,其中,所述第三数据包包含有用于响应所述客户端软件程序的最新版本号查询请求而反馈的服务器侧最新版本号;
所述第三修改单元,通信连接所述第三拦截获取单元,用于将所述第三数据包中的服务器侧最新版本号修改为高版本号;
所述第三传送单元,通信连接所述第三修改单元,用于向所述客户端软件程序传送修改后的所述第三数据包,以便所述客户端软件程序在根据所述服务器侧最新版本号与本地客户端侧版本号的对比结果判定客户端软件版本为低版本时,向所述服务器发送用于下载最新软件升级包的软件升级请求,最终得到最新软件升级包。
8.一种计算机设备,其特征在于,包括依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~3或如权利要求5~6中任意一项所述的软件升级强制触发方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~3或如权利要求5~6中任意一项所述的软件升级强制触发方法。
10.一种软件升级系统,其特征在于,包括有通信相连的客户端设备和服务器,其中,所述客户端设备运行有客户端软件程序和用于执行如权利要求1~3或如权利要求5~6中任意一项所述软件升级强制触发方法的程序。
CN202010438089.5A 2020-05-21 2020-05-21 一种软件升级强制触发方法、装置及软件升级系统 Pending CN111596942A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010438089.5A CN111596942A (zh) 2020-05-21 2020-05-21 一种软件升级强制触发方法、装置及软件升级系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010438089.5A CN111596942A (zh) 2020-05-21 2020-05-21 一种软件升级强制触发方法、装置及软件升级系统

Publications (1)

Publication Number Publication Date
CN111596942A true CN111596942A (zh) 2020-08-28

Family

ID=72190642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010438089.5A Pending CN111596942A (zh) 2020-05-21 2020-05-21 一种软件升级强制触发方法、装置及软件升级系统

Country Status (1)

Country Link
CN (1) CN111596942A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112994982A (zh) * 2021-03-11 2021-06-18 苏州沁游网络科技有限公司 一种云真机的抓包控制方法、装置、系统及存储介质
US11573782B2 (en) 2021-01-06 2023-02-07 Red Hat, Inc. Self updating agent

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295088A1 (en) * 2007-05-25 2008-11-27 Samsung Electronics Co., Ltd. Interception Proxy-Based Approach for In-Service Software Upgrade
CN103207791A (zh) * 2012-01-17 2013-07-17 深圳市宏电技术股份有限公司 远程升级方法、系统及数据终端
CN108737407A (zh) * 2018-05-11 2018-11-02 北京奇安信科技有限公司 一种劫持网络流量的方法及装置
CN110399135A (zh) * 2018-06-05 2019-11-01 腾讯科技(深圳)有限公司 一种安装应用程序的方法及装置
CN110515850A (zh) * 2019-08-29 2019-11-29 北京拉勾网络技术有限公司 一种应用程序测试方法、移动终端及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295088A1 (en) * 2007-05-25 2008-11-27 Samsung Electronics Co., Ltd. Interception Proxy-Based Approach for In-Service Software Upgrade
CN103207791A (zh) * 2012-01-17 2013-07-17 深圳市宏电技术股份有限公司 远程升级方法、系统及数据终端
CN108737407A (zh) * 2018-05-11 2018-11-02 北京奇安信科技有限公司 一种劫持网络流量的方法及装置
CN110399135A (zh) * 2018-06-05 2019-11-01 腾讯科技(深圳)有限公司 一种安装应用程序的方法及装置
CN110515850A (zh) * 2019-08-29 2019-11-29 北京拉勾网络技术有限公司 一种应用程序测试方法、移动终端及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
REPRAANCE: "使用Fiddler抓包获取旧版ipa", 《HTTPS://RPRNS.ME/2016/12/30/使用%20FIDDLER%20抓包获取旧版%20IPA/》 *
彭先觉等: "利用软件在线升级的攻击", 《通信技术》 *
磐龍: "Android检查版本升级应该怎么做?", 《HTTPS://WWW.JIANSHU.COM/P/98EA7E866FFD》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11573782B2 (en) 2021-01-06 2023-02-07 Red Hat, Inc. Self updating agent
CN112994982A (zh) * 2021-03-11 2021-06-18 苏州沁游网络科技有限公司 一种云真机的抓包控制方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
JP2020509635A (ja) ネットワークスライス選択方法、ユーザ機器、及びネットワーク装置
US8464332B2 (en) Access gateway and method for providing cloud storage service
CN107534930B (zh) 一种Wi-Fi热点的推荐方法、终端及图形用户界面
CN106534289B (zh) 自动化测试方法、装置及系统
KR20120083506A (ko) 이동 디바이스를 위한 원격 필드 테스트 제공
CN103678130A (zh) 自动化性能测试方法及测试平台
CN111596942A (zh) 一种软件升级强制触发方法、装置及软件升级系统
CN114422254B (zh) 云蜜罐部署方法、装置、云蜜罐服务器及可读存储介质
EP4210275A1 (en) Device cross-area access method and apparatus, electronic device, and storage medium
CN107294910B (zh) 一种登录方法和服务器
CN111432033A (zh) 应用程序下载方法、装置、系统、ios设备及介质
US20130219052A1 (en) Dynamic configuration of interconnected devices for measuring performance characteristics in a network
CN107360036B (zh) 一种网络故障定位方法、终端和服务器
CN112218325A (zh) 网络测试方法及装置
CN109194706B (zh) 网络资源拨测方法及终端
CN114039961A (zh) 基于WebSocket的消息推送方法、设备、服务器及存储介质
EP2630750B1 (en) Quality of service monitoring device and method of monitoring quality of service
CN111628902B (zh) 速率测试方法和装置、电子设备和计算机可读存储介质
US9807010B2 (en) Congestion detection in mobile networks and delivery of content in non-congested conditions
US10623531B2 (en) Raman spectroscopic device and communication method thereof
CN111224983A (zh) 跨网段发现设备的方法及装置
JP6787845B2 (ja) 被疑箇所推定装置、及び被疑箇所推定方法
CN115174194A (zh) 系统漏洞挖掘方法、装置、设备及存储介质
CN110650071B (zh) 用户设备的接入管理方法、装置和管理服务器
CN112925713A (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
TA01 Transfer of patent application right

Effective date of registration: 20210420

Address after: 250000 No. 27 South Grand Road, Shandong, Ji'nan

Applicant after: SHANDONG University

Address before: No. 1705, 17th floor, unit 3, building 1, No. 333, Jiqing Third Road, high tech Zone, Chengdu, Sichuan 610000

Applicant before: SICHUAN PUSI KECHUANG INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20200828

RJ01 Rejection of invention patent application after publication