诊断终端应用被篡改的方法、系统及服务器的制造方法

文档序号:8001744阅读:194来源:国知局
诊断终端应用被篡改的方法、系统及服务器的制造方法
【专利摘要】本发明提出诊断终端应用被篡改的方法、系统及服务器,其中方法包括:测试服务器接收由前置服务器获取的待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;测试服务器接收由前置服务器实时获取的待测试终端的屏幕内容、特定变量或存储区的快照,并实时获取测试终端的屏幕内容、特定变量或存储区的快照;测试服务器将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。本发明能够不依赖于校验算法对终端应用进行诊断,提高诊断的有效性。
【专利说明】诊断终端应用被篡改的方法、系统及服务器

【技术领域】
[0001]本发明涉及终端应用【技术领域】,尤其涉及诊断终端应用被篡改的方法、系统及服务器。

【背景技术】
[0002]随着智能手机和智能手机上的终端应用日益普及,及时诊断终端应用被恶意篡改变得越来越重要。否则,如果用户手机上运行的某应用虽然看起来像是正常应用,而实际上嵌入了恶意代码,就会对用户带来不利的后果。即使用户从正规的应用商店下载了应用程序,如果在下载之后被恶意篡改,如植入病毒代码,用户也无法感知这种篡改。
[0003]现有的诊断终端应用被篡改的技术方案采用静态代码保护的思路,如基于数字证书、完整性保护等,即:
[0004]应用商店服务器在上架每个终端应用前,都生成唯一的校验信息,如数字证书、完整性保护信息如摘要等;并且,将该终端应用程序的真实版本以及对应的校验信息都保存在应用商店服务器上;
[0005]终端在下载或执行该应用的副本时,对终端上的该应用的副本重新计算校验信息,然后与应用商店服务器所保存的校验信息进行对比,如果匹配就认为该应用是真实版本,否则就认为是篡改过的版本。
[0006]现有方案存在以下缺点:
[0007]1、防篡改诊断的有效性取决于校验算法的强度。如果校验算法被破解,则防篡改功能失效。
[0008]2、不够灵活。按现有方案,应用程序任何一点改动都要重新计算和存储校验信息,即使是小版本升级如仅修改了个别bug。目前终端应用升级的频度常常是每周I次,相当频繁,额外的防篡改机制增加了开发者的负担。
[0009]3、用户被绑定于应用商店:如果用户想要校验该终端应用是否被篡改过,终端上必须运行与当初下载该应用的应用商店所对应的校验程序客户端,而且必须与该应用商店交互才能完成校验过程。如果用户从多个商店下载了应用,就必须分别运行对应的校验程序客户端、分别实施校验;对于不支持防篡改校验的商店,从该商店下载的应用就无法实施。
[0010]4、运营负担重:应用商店需要为每个终端应用来生成和保存校验信息。因为应用数量众多,并且频繁升级,而每次升级都要重新生成和存储校验信息,运营负担较高。


【发明内容】

[0011]本发明提供了一种诊断终端应用被篡改的方法,能够不依赖于校验算法对终端应用进行诊断,提高诊断的有效性。
[0012]本发明还提供了一种诊断终端应用被篡改的系统、前置服务器及测试服务器,能够不依赖于校验算法对终端应用进行诊断,提高诊断的有效性。
[0013]本发明的技术方案是这样实现的:
[0014]一种诊断终端应用被篡改的方法,包括:
[0015]A、测试服务器接收由前置服务器获取的待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;
[0016]B、测试服务器接收由前置服务器实时获取的待测试终端的屏幕内容、特定变量或存储区的快照,并实时获取测试终端的屏幕内容、特定变量或存储区的快照;
[0017]C、测试服务器将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
[0018]—种诊断终端应用被桌改的系统,包括:
[0019]前置服务器,用于获取待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件发送至测试服务器,还用于实时获取待测试终端的屏幕内容、特定变量或存储区的快照,将所述待测试终端的屏幕内容、特定变量或存储区的快照发送至测试服务器;
[0020]测试服务器,用于接收来自前置服务器的待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件信息下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;还用于接收来自前置服务器的待测试终端的屏幕内容、特定变量或存储区的快照,并实时获取所述测试终端的屏幕内容、特定变量或存储区的快照,将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
[0021]一种用于诊断终端应用被篡改的前置服务器,包括:
[0022]同屏测试模块,用于获取待测试终端的按键或触屏事件,还用于实时获取待测试终端的屏幕内容、特定变量或存储区的快照;
[0023]远程同步模块,用于将所述待测试终端的按键或触屏事件及待测试终端的屏幕内容、特定变量或存储区的快照发送至测试服务器。
[0024]一种用于诊断终端应用被篡改的测试服务器,包括:
[0025]远程同步模块,用于接收来自前置服务器的待测试终端的按键或触屏事件及待测试终端的屏幕内容、特定变量或存储区的快照;
[0026]同屏测试模块,用于将所述待测试终端的按键或触屏事件下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;还用于实时获取测试终端的屏幕内容、特定变量或存储区的快照;
[0027]屏幕比对模块,用于将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
[0028]可见,本发明提出的诊断终端应用被篡改的方法、系统及服务器,基于终端应用行为的一致性对比实现防篡改诊断,能够不依赖于校验算法对终端应用进行诊断,提高诊断的有效性。

【专利附图】

【附图说明】
[0029]图1为本发明提出的诊断终端应用被篡改的方法实现流程图;
[0030]图2为本发明实施例一的系统结构示意图;
[0031]图3为本发明实施例二的主要设备内部结构示意图;
[0032]图4为本发明提出的诊断终端应用被篡改的系统结构示意图;
[0033]图5为本发明提出的用于诊断终端应用被篡改的前置服务器结构示意图;
[0034]图6为本发明提出的用于诊断终端应用被篡改的测试服务器结构示意图。

【具体实施方式】
[0035]本发明基于动态一致性检查,也就是检查终端应用程序所表现出的行为是否一致。本发明通过判断用户侧待测试终端的屏幕内容、特定变量或存储区的快照与应用商店侧测试终端屏幕内容、特定变量或存储区的快照的内容一致性,来判断终端应用的行为一致性,进而判定该终端应用是否被篡改。如果只是善意的修改了小bug,只要表现出的行为一致,就能够确认用户侧待测试终端的应用程序是正常合理的。
[0036]本发明提出一种诊断终端应用被篡改的方法,如图1为该方法实现流程图,包括:
[0037]步骤101:测试服务器接收由前置服务器获取的待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;
[0038]步骤102:测试服务器接收由前置服务器实时获取的待测试终端的屏幕内容、特定变量或存储区的快照,并实时获取测试终端的屏幕内容、特定变量或存储区的快照;
[0039]步骤103:测试服务器将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
[0040]上述方法中,可以在步骤101之前进一步包括:
[0041]测试服务器接收由前置服务器获取的待测试终端及终端应用的信息,根据所述信息选择相应的测试终端,并在所述测试终端上安装所述终端应用。
[0042]上述方法中,可以引入检查点、单步、断点的功能进行,具体如下:
[0043]终端应用执行过程中,在预先设定的步骤、时间点或事件发生时,执行上述步骤101 和 102 ;
[0044]在终端应用执行完毕之后,执行上述步骤101和102 ;并针对所述预先设定的步骤、时间点或事件发生时获取的内容及所述终端应用执行完毕之后获取的内容执行步骤103。
[0045]或者,
[0046]当所述终端应用的单个步骤执行完成后,暂停执行所述终端应用,并针对所述单个步骤执行上述步骤101、102和103 ;如果步骤103中判定待测试终端的终端应用被篡改,则结束当前流程;如果步骤103中比对结果一致,则在前置服务器获取待测试终端的按键或触屏事件后,针对所述终端应用的下一步骤重复执行所上述步骤101、102和103。
[0047]或者,
[0048]在预先设定的步骤、时间点或事件发生时,暂停执行所述终端应用,并执行上述步骤101、102和103 ;如果步骤103中判定待测试终端的终端应用被篡改,则结束当前流程;如果步骤103中比对结果一致,则在前置服务器获取待测试终端的按键或触屏事件后,针对所述终端应用的下一步骤重复执行上述步骤101、102和103。
[0049]以下举具体的实施例对本发明做详细介绍。
[0050]实施例一:
[0051]如图2为本发明实施例一的系统结构示意图。
[0052]在本实施例中,在应用商店侧(如机房)部署测试系统,在用户侧(如营业厅)部署前置系统,由应用商店侧测试系统和用户侧前置系统相互配合,完成防篡改检验。具体如下:
[0053]第一,在应用商店侧部署基于多台终端的测试系统,具体包括:
[0054]a)部署测试服务器;
[0055]b)部署市面主流型号的测试终端;
[0056]c)在测试服务器、测试终端上部署同屏测试工具,使得:
[0057]测试服务器能够控制:从测试服务器下载特定的终端应用,到特定型号的测试终端上,并安装、启动,以及停止、卸载;
[0058]测试服务器能够控制:将测试终端的屏幕内容、特定变量或存储区的快照实时同步传送到测试服务器;
[0059]测试服务器能够控制:模拟产生按键或触屏事件,从测试服务器发送到测试终端,使测试终端做出与真实用户实施按键或触屏动作一样的反应。
[0060]第二,在用户侧部署前置系统,满足:
[0061]a)部署前置服务器;
[0062]b)前置服务器能够与应用商店侧的测试服务器交互;
[0063]c)在前置服务器上部署同屏测试工具,使得:
[0064]前置服务器允许动态接入、拔出用户的待测试终端;
[0065]前置服务器能够控制:在用户的待测试终端上安装同屏测试工具;
[0066]当用户准备启动待测试终端的某终端应用时,前置服务器能够检测到该信息,前置服务器能够通知应用商店侧的测试服务器,通知内容可包括应用ID和版本、用户手机型号和版本等,还可能包括用户ID等;
[0067]用户操作启动该终端应用,或者前置服务器通过脚本启动该终端应用;在终端应用启动后,前置服务器能够控制:同步获取待测试终端的屏幕内容、特定变量或存储区的快照,同步获取待测试终端的按键或触屏事件,并将这些数据同步发送到应用商店侧的测试服务器。
[0068]第三,应用商店侧的测试系统和用户侧的前置系统相互配合,完成下列的防篡改检验:
[0069]a)前置服务器获知用户的待测试终端将要启动某终端应用的事件,实时上传至应用商店侧的测试服务器;测试服务器选择同型号、同版本的测试终端,安装同ID、同版本的终端应用,必要时根据用户ID进行必要的配置;
[0070]b)当用户操作按键或触屏时,或者当前置服务器通过脚本来控制按键或触屏操作时,前置服务器能实时获知用户待测试终端的按键或触屏事件,实时上传至测试服务器,测试服务器向测试终端实时下发相同的按键或触屏事件,由测试终端执行该按键或触屏操作;
[0071]前置服务器实时获取用户待测试终端的屏幕内容、特定变量或存储区的快照,实时上传至测试服务器;测试服务器也实时获得测试终端的屏幕内容、特定变量或存储区的快照;
[0072]测试服务器将待测试终端和测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则向用户、营业人员或其他人员报告,表明用户侧待测试终端的该应用程序行为异常,有可能被篡改。
[0073]此外,同屏测试软件可以提供检查点、单步、断点等功能,以便在广域网范围内,也能够实现对用户待测试终端和测试终端的易于控制的、准确的同步,包括实施按键或触屏操作、获取终端屏幕内容同步、实时比对屏幕内容。
[0074]引入检查点、单步、断点等功能,能更好的测试具有实时特性的终端应用,如动作类游戏应用软件。由于客户/营业厅、测试终端池/应用商店平台是通过广域网络系统连接,网络传输的延迟会导致营业厅的客户终端和测试终端池的测试终端在执行实时特性app时的执行进度不同步,即即使用户操作和测试终端的模拟触屏事件同步,也会因为网络延迟而导致两边的终端执行不同步,进而干扰了抓屏一屏幕匹配等关键性测试效果。
[0075]为此,本发明可以引入检查点、单步、断点等功能。分别说明如下:
[0076]检查点是指:在执行终端应用时,同屏测试工具在特定的步骤、时间点或发生特定事件时,抓取记录终端某些变量或存储区的快照,然后继续执行。检查点可以设定为绝对时间点或相对时间点。终端应用执行过程中可以设置多个检查点。
[0077]单步是指:在执行终端应用时,同屏测试工具控制在执行完每一个步骤后,暂停下来,等待用户操作或模拟用户操作后,再执行下一步骤。在暂停期间,可以进行抓屏-比对等测试操作。
[0078]断点是指:在执行终端应用时,同屏测试工具在特定的步骤、时间点或发生特定事件时,暂停执行终端应用,等待用户操作或模拟用户操作后,再执行下一步骤。在暂停期间,可以进行抓屏-比对等测试操作。断点的时机可以设定为绝对时间点或相对时间点。终端应用执行过程中可以设置多个断点。
[0079]实施例二:
[0080]如图3为本实施例二的主要设备内部结构示意图。
[0081]如图3所示,待测试终端上设置手机侧的同屏测试工具,前置服务器上设置PC侧的同屏测试工具,二者交互,实现将待测试终端的按键或触屏事件及屏幕内容、特定变量或存储区的快照抓取到前置服务器中。
[0082]前置服务器和测试服务器分别设置远程同步工具,实现将前置服务器抓取的待测试终端的按键或触屏事件及屏幕内容、特定变量或存储区的快照发送至测试服务器;
[0083]测试服务器上还设置PC侧的同屏测试工具及屏幕比对模块;其中,PC侧的同屏测试工具与测试终端上设置的手机侧的同屏测试工具交互,实现将待测试终端的按键或触屏事件下发至测试终端,以及将测试终端的屏幕内容、特定变量或存储区的快照抓取到测试服务器中;屏幕比对模块用于比对待测试终端的屏幕内容、特定变量或存储区的快照及测试终端的屏幕内容、特定变量或存储区的快照,根据比对结果判定终端应用是否被篡改。此夕卜,测试服务器上还可以设置应用管理模块和测试终端管理模块,分别用于对终端应用和测试终端进行管理。
[0084]本发明还提出一种诊断终端应用被篡改的系统,如图4为该系统的结构示意图,包括:
[0085]前置服务器401,用于获取待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件发送至测试服务器402,还用于实时获取待测试终端的屏幕内容、特定变量或存储区的快照,将所述待测试终端的屏幕内容、特定变量或存储区的快照发送至测试服务器 402 ;
[0086]测试服务器402,用于接收来自前置服务器401的待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件信息下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;还用于接收来自前置服务器401的待测试终端的屏幕内容、特定变量或存储区的快照,并实时获取所述测试终端的屏幕内容、特定变量或存储区的快照,将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
[0087]上述系统中,前置服务器401还可以用于,获取待测试终端及终端应用的信息,将获取的信息发送至测试服务器402 ;
[0088]测试服务器402还可以用于,根据所述信息选择相应的测试终端,并在所述测试终端上安装所述终端应用。
[0089]本发明还提出一种用于诊断终端应用被篡改的前置服务器,如图5为该前置服务器的结构示意图,包括:
[0090]同屏测试模块501,用于获取待测试终端的按键或触屏事件,还用于实时获取待测试终端的屏幕内容、特定变量或存储区的快照;
[0091]远程同步模块502,用于将所述待测试终端的按键或触屏事件及待测试终端的屏幕内容、特定变量或存储区的快照发送至测试服务器。
[0092]上述前置服务器中,同屏测试模块501还可以用于,获取待测试终端及终端应用的信息;
[0093]远程同步模块502还可以用于,将所述待测试终端及终端应用的信息发送至测试服务器。
[0094]本发明还提出一种用于诊断终端应用被篡改的测试服务器,如图6为该测试服务器的结构示意图,包括:
[0095]远程同步模块601,用于接收来自前置服务器的待测试终端的按键或触屏事件及待测试终端的屏幕内容、特定变量或存储区的快照;
[0096]同屏测试模块602,用于将所述待测试终端的按键或触屏事件下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;还用于实时获取测试终端的屏幕内容、特定变量或存储区的快照;
[0097]屏幕比对模块603,用于将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
[0098]上述测试服务器中,远程同步模块601还可以用于,接收来自前置服务器的待测试终端及终端应用的信息;
[0099]同屏测试模块602还可以用于,根据所述信息选择相应的测试终端,并在所述测试终端上安装所述终端应用。
[0100]综上可见,本发明提出的诊断终端应用被篡改的方法、系统、前置服务器及测试服务器,基于终端应用的行为一致性对比,克服了现有方案基于程序代码的静态一致性比对的局限。本发明能够提高保护强度,不依赖于保护算法的强度;提升灵活性,允许善意、小范围修改bug,只要不改变终端应用的行为即认为该终端应用未被篡改;用户不必绑定于特定应用商店,用户从其他渠道下载的终端应用也可以使用本发明提供的防篡改诊断服务;降低应用商店的运营负担,且有利于应用的快速频繁升级。
[0101]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种诊断终端应用被篡改的方法,其特征在于,所述方法包括: A、测试服务器接收由前置服务器获取的待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件; B、测试服务器接收由前置服务器实时获取的待测试终端的屏幕内容、特定变量或存储区的快照,并实时获取测试终端的屏幕内容、特定变量或存储区的快照; C、测试服务器将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
2.根据权利要求1所述的方法,其特征在于,所述步骤A之前进一步包括: 测试服务器接收由前置服务器获取的待测试终端及终端应用的信息,根据所述信息选择相应的测试终端,并在所述测试终端上安装所述终端应用。
3.根据权利要求1或2所述的方法,其特征在于, 所述终端应用执行过程中,在预先设定的步骤、时间点或事件发生时,执行所述步骤A和B ; 在所述终端应用执行完毕之后,执行所述步骤A和B;并针对所述预先设定的步骤、时间点或事件发生时获取的内容及所述终端应用执行完毕之后获取的内容执行所述步骤C。
4.根据权利要求1或2所述的方法,其特征在于,当所述终端应用的单个步骤执行完成后,暂停执行所述终端应用,并针对所述单个步骤执行所述步骤A、B和C ;如果步骤C中判定待测试终端的终端应用被篡改,则结束当前流程;如果步骤C中比对结果一致,则在前置服务器获取待测试终端的按键或触屏事件后,针对所述终端应用的下一步骤重复执行所述步骤A、B和C。
5.根据权利要求1或2所述的方法,其特征在于,在预先设定的步骤、时间点或事件发生时,暂停执行所述终端应用,并执行所述步骤A、B和C ;如果步骤C中判定待测试终端的终端应用被篡改,则结束当前流程;如果步骤C中比对结果一致,则在前置服务器获取待测试终端的按键或触屏事件后,针对所述终端应用的下一步骤重复执行所述步骤A、B和C。
6.一种诊断终端应用被篡改的系统,其特征在于,所述系统包括: 前置服务器,用于获取待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件发送至测试服务器,还用于实时获取待测试终端的屏幕内容、特定变量或存储区的快照,将所述待测试终端的屏幕内容、特定变量或存储区的快照发送至测试服务器; 测试服务器,用于接收来自前置服务器的待测试终端的按键或触屏事件,将所述待测试终端的按键或触屏事件信息下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;还用于接收来自前置服务器的待测试终端的屏幕内容、特定变量或存储区的快照,并实时获取所述测试终端的屏幕内容、特定变量或存储区的快照,将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
7.根据权利要求6所述的系统,其特征在于,所述前置服务器还用于,获取待测试终端及终端应用的信息,将获取的信息发送至测试服务器; 所述测试服务器还用于,根据所述信息选择相应的测试终端,并在所述测试终端上安装所述终端应用。
8.一种用于诊断终端应用被篡改的前置服务器,其特征在于,所述前置服务器包括: 同屏测试模块,用于获取待测试终端的按键或触屏事件,还用于实时获取待测试终端的屏幕内容、特定变量或存储区的快照; 远程同步模块,用于将所述待测试终端的按键或触屏事件及待测试终端的屏幕内容、特定变量或存储区的快照发送至测试服务器。
9.根据权利要求8所述的前置服务器,其特征在于,所述同屏测试模块还用于,获取待测试终端及终端应用的信息; 所述远程同步模块还用于,将所述待测试终端及终端应用的信息发送至测试服务器。
10.一种用于诊断终端应用被篡改的测试服务器,其特征在于,所述测试服务器包括: 远程同步模块,用于接收来自前置服务器的待测试终端的按键或触屏事件及待测试终端的屏幕内容、特定变量或存储区的快照; 同屏测试模块,用于将所述待测试终端的按键或触屏事件下发至安装所述终端应用的测试终端,由测试终端执行所述按键或触屏事件;还用于实时获取测试终端的屏幕内容、特定变量或存储区的快照; 屏幕比对模块,用于将所述待测试终端的屏幕内容、特定变量或存储区的快照与测试终端的屏幕内容、特定变量或存储区的快照进行比对,如果比对结果不一致,则判定所述待测试终端的终端应用被篡改。
11.根据权利要求10所述的测试服务器,其特征在于,所述远程同步模块还用于,接收来自前置服务器的待测试终端及终端应用的信息; 所述同屏测试模块还用于,根据所述信息选择相应的测试终端,并在所述测试终端上安装所述终端应用。
【文档编号】H04L29/06GK104283846SQ201310276488
【公开日】2015年1月14日 申请日期:2013年7月3日 优先权日:2013年7月3日
【发明者】董文宇 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1