事件处理方法和装置、以及存储介质和电子装置与流程

文档序号:17741622发布日期:2019-05-24 20:10阅读:212来源:国知局
事件处理方法和装置、以及存储介质和电子装置与流程

本发明涉及计算机领域,具体而言,涉及一种事件处理方法和装置、以及存储介质和电子装置。



背景技术:

随着互联网日益普及,人们越来越依赖计算机来处理各种事务,并且越来越多的文件以电子文档的形式进行加工及传输,电子信息资产已经成为现代最重要的资产之一,如何防护电子文档显得尤为重要。

一般来说运行在用户计算机中的程序成百上千,恶意的程序对用户计算机中的私密文件觊觎已久,目前大多数终端安全软件的防护思路是对病毒木马进行识别和查杀,这对已知的病毒能取得比较好的效果,但对未知病毒的恶意行为很难达到预期的效果,这就可能会造成误将病毒在后台的恶意行为识别为用户主动发起的正常行为而放行,从而导致用户数据泄露、损坏等问题。

针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。



技术实现要素:

本发明实施例提供了一种事件处理方法和装置、以及存储介质和电子装置。

根据本发明的一个实施例,提供了一种事件处理方法,包括:在监测出接收到目标事件的情况下,获取接收到目标事件的目标线程的目标信息;利用目标信息判断目标事件是否由用户操作行为所触发;如果是,则允许目标线程执行目标事件对应的操作;如果否,则禁止目标线程执行目标事件对应的操作。

进一步地,目标信息包括当前堆栈信息,利用目标信息判断目标事件是否由用户操作行为所触发,包括:判断目标线程的当前堆栈信息是否与预设堆栈特征相匹配,其中,预设堆栈特征为预先在接收到用户操作行为的线程的堆栈信息中提取出的特征;其中,如果匹配,则确定目标事件是由用户操作行为所触发。

进一步地,在确定目标事件是由用户操作行为所触发之后,该方法还包括:将目标线程加入目标集合,其中,目标集合中还包括利用预设规则在操作系统的进程和线程中确定出的主动进程和主动线程,预设规则包括:接收到针对输入设备窗口界面的响应消息的线程是主动线程,由目标集合中的主动线程创建的子线程是主动线程,由目标集合中的主动线程创建的子进程是主动进程,由目标集合中的主动进程的主线程是主动线程;以及在判断目标线程的当前堆栈信息是否与预设堆栈特征相匹配之后,该方法还包括:如果不匹配,则判断目标线程是否在目标集合中,其中,如果目标线程不在目标集合中,则确定目标事件不是由用户操作行为所触发。

进一步地,在判断出目标线程不在目标集合中的情况下,该方法还包括:对目标线程回溯指定层级,并判断每一层级的线程是否在目标集合中,其中,如果是,则目标事件是由用户操作行为所触发,如果否,则目标事件不是由用户操作行为所触发。

进一步地,在目标集合中的进程或线程结束的情况下,在目标集合中删除对应的进程或线程。

进一步地,在获取接收到目标事件的目标线程的目标信息之前,该方法还包括:利用hook机制监测操作系统的目标功能是否被调用,其中,如果是,则确定监测出接收到目标事件。

进一步地,目标功能用于打开目标文件,目标信息包括调用目标功能所请求的权限,在利用目标信息判断目标事件是否由用户操作行为所触发之前,该方法还包括:判断调用目标功能所请求的权限是否包括对目标文件的内容的读权限或写权限,其中,如果是,则利用目标信息判断目标事件是否由用户操作行为所触发,如果否,则允许目标线程调用目标功能。

进一步地,目标功能用于打开目标文件,在禁止目标线程执行目标事件对应的操作之前,该方法还包括:判断目标文件是否被拖动、复制或粘贴,其中,如果是,则允许目标线程调用目标功能,如果否,禁止目标线程调用目标功能。

进一步地,在利用目标信息判断目标事件是否由用户操作行为所触发之前,该方法还包括:判断目标事件是否由指定漏洞代码执行,其中,如果是,则禁止目标线程执行目标事件对应的操作,如果否,则利用目标信息判断目标事件是否由用户操作行为所触发。

根据本发明的另一个实施例,提供了一种事件处理装置,包括:获取单元,用于在监测出接收到目标事件的情况下,获取接收到目标事件的目标线程的目标信息;判断单元,用于利用目标信息判断目标事件是否由用户操作行为所触发;第一执行单元,用于如果是,则允许目标线程执行目标事件对应的操作;第二执行单元,用于如果否,则禁止目标线程执行目标事件对应的操作。

根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

本发明实施例提供的事件处理方法,提出了一种新的事件处理方法的技术方案,判断接收到的目标事件是否为用户操作行为,也即,对接收到目标事件的目标线程是否为本发明实施例中所述的主动线程进行判断,从而根据判断结果的不同采取不同的处理策略,采用了与现有技术中不同的方式拦截事件,解决了相关技术中可能会造成误将病毒在后台的恶意行为识别为用户主动发起的正常行为而放行,从而导致用户损失的问题,达到了提高病毒查杀准确率的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种计算机设备的硬件结构框图;

图2是根据本发明实施例一种可选的事件处理方法的流程图;

图3是根据本发明实施例另一种可选的事件处理方法中获得主动进程、线程集合的流程图;

图4是根据本发明实施例另一种可选的事件处理方法的流程图;

图5是根据本发明实施例的一种可选的事件处理装置的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例一所提供的方法实施例可以在移动终端、计算机设备、服务器或者类似的运算装置中执行。以运行在计算机设备上为例,图1是本发明实施例的一种计算机设备的硬件结构框图。如图1所示,计算机设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述计算机设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机设备的结构造成限定。例如,计算机设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的事件处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机设备的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于计算机设备的事件处理方法,图2是根据本发明实施例的事件处理方法的流程图,如图2所示,该流程包括如下步骤:

步骤201,在监测出接收到目标事件的情况下,获取接收到所述目标事件的目标线程的目标信息;

步骤202,利用所述目标信息判断所述目标事件是否由用户操作行为所触发;

步骤203,如果是,则允许目标线程执行目标事件对应的操作;

步骤204,如果否,则禁止目标线程执行目标事件对应的操作。

事件可以由用户对输入设备(例如,鼠标、键盘等)的操作行为触发,也可以由恶意程序触发,在本发明实施例中,提供了一种事件处理方法,通过判断监测到的目标事件是否为用户操作行为发起的事件,来确定是否执行目标事件对应的操作。

事件能够驱动操作系统执行某种服务和功能(操作),例如,事件可以是打开文件,可以由用户左键双击一个文件触发、或者拖拽等方式触发,打开文件可以是读取文件属性或文件内容,或者是写文件等。

在本发明实施例中,目标事件是指预先指定的事件,例如上述的打开文件,由于用户正常操作文件或者恶意程序盗取、破坏文件都需要首先打开文件,因此,在将本发明实施例提供的方法应用于保护数据安全的领域时,可以指定目标事件为打开文件的事件。

监测是否接收到目标事件的具体方式可以根据指定需求和操作系统的情况确定。举例而言,可以通过监测操作系统是否接收到目标事件对应的消息来判断,如果接收到对应的消息,确定监测到目标事件,如果未接收到对应的消息,确定未监测到目标事件。

再如,指定的目标事件对应的操作通常需要调用到操作系统提供的功能(服务),进而,可以利用操作系统提供的hook(钩子)机制监测操作系统的目标功能(目标事件需要调用的操作系统的功能)是否被调用,如果监测到目标功能被调用,则确定接收到目标事件。

例如,以目标事件为打开文件为例,可以hook操作系统的api函数ntcreatefile、ntopenfile等,以拦截打开文件的事件。

需要说明的是,hook机制是一种监控方法,能够拦截到调用目标功能的行为,并调用预先定义的过滤函数,在本发明实施例中,过滤函数用于判断接收到目标事件的目标线程是否是主动线程,如果是,则允许目标线程执行目标事件对应的操作,如果否,则禁止目标线程执行目标事件对应的操作。

目标线程是指接收到目标事件的线程。线程是程序执行流的最小单元,是进程中的一个实体。在监测出接收到目标事件的情况下,获取接收到目标事件的目标线程的目标信息。目标信息可以包括目标线程的堆栈信息、针对目标事件请求的权限等。

在判断目标事件是否由用户主动操作行为触发时,可以利用预先收集的用户主动操作行为的线程堆栈信息(调用栈信息)提取出的特征与目标线程堆栈信息进行匹配。

具体的,预先收集接收到用户操作行为的线程的堆栈信息,提取堆栈信息的特征,并抽取堆栈信息的关键要素:如堆栈调用序号、模块名、函数名、函数偏移等,总结出格式化的数据,存储在堆栈特征库。堆栈特征库的形成可以包括人工参与。

利用堆栈特征库中的每个堆栈特征与目标线程的当前堆栈信息进行匹配,如果目标线程的当前堆栈信息与堆栈特征库中的任一预设堆栈特征相匹配,则确定目标线程是主动线程。

在本发明实施例中,提出了一种成为“主动线程”的概念,以用于表示存在用户主动操作行为的线程,此外,主动线程还可以包括由存在用户主动操作行为的线程所创建的子线程、或子进程的主线程,以及操作系统中曾接收到针对输入设备窗口界面的响应消息的线程。需要说明的是,主动线程不等同于主线程,主线程通常是指在一个进程被创建时立刻运行的一个线程,而本发明实施例中所定义的主动进程与用户主动操作行为有关。

进而,如果目标线程的当前堆栈信息与堆栈特征库中的任一预设堆栈特征都不匹配,可以继续利用目标线程是否是由主动线程创建的子线程、或者由主动线程创建的子进程的主线程,以及线程是否接收过针对输入设备窗口界面的响应消息等方式来继续判断目标线程是否是主动线程。

一种可选的实现方法为,建立并更新目标集合,目标集合中包括操作系统中已知的主动线程和主动进程,具体的,在利用堆栈特征匹配确定目标线程是主动线程之后,将目标线程加入到目标集合,并利用如下规则确定操作系统中的主动进程和主动线程:

①接收到针对输入设备窗口界面的响应消息的线程是主动线程;

②由目标集合中的主动线程创建的子线程是主动线程;

③由目标集合中的主动线程创建的子进程是主动进程;

④由目标集合中的主动进程创建的主线程是主动线程。

其中,规则①可以通过hook操作系统调用的消息派发api函数dispatchmessage实现,在确定消息派发api函数返回针对目标线程的输入设备窗口界面的响应消息的情况下,确定目标线程为主动线程。

对于规则②、③、④,可以通过hook操作系统中创建进程、线程的底层api(如ntcreateuserprocess和ntcreatethreadex)来实现。

将根据上述四种规则确定出的主动线程和主动进程加入目标集合。也即,目标集合中包括上述四种规则确定出的主动进程,以及在接收到目标事件之后、利用任一预设堆栈特征匹配成功的主动线程。

需要说明的是,如果目标线程的堆栈信息与预设堆栈特征不匹配,而目标线程在目标集合中,则进一步回溯目标线程的n(预定数值)个层级,如果n个层级的线程都在目标集合中,才最终确定目标事件由用户操作行为触发(也即,目标线程为主动线程),否则,如果回溯到某个层级的线程不在目标集合中,则确定目标事件并非由用户操作行为触发。

在操作系统中有进程或线程被结束的情况下,判断是否在目标集合中,如果是,则在目标集合中删除对应的进程或线程。

在判断出目标事件由用户操作行为触发之后,允许目标线程执行目标事件对应的操作,否则,禁止目标线程执行目标事件对应的操作。进一步地,在每一次执行目标事件对应的操作之后,可以记录工作日志,并发送给服务端以供进一步的分析。

可选的,为了加快对目标事件的响应速度,提高处理效率,在利用目标信息判断目标事件是否由用户操作行为所触发之前,可以先判断目标事件是否由指定漏洞代码(如shellcode)执行,如果判断出目标事件是由指定漏洞代码执行,则执行利用目标信息判断目标事件是否由用户操作行为所触发,否则,判定目标事件是由恶意程序执行的,并非由用户操作行为执行,禁止执行目标事件对应的操作。

本发明实施例提供的事件处理方法,提出了一种新的事件处理方法的技术方案,判断接收到的目标事件是否为用户操作行为,也即,对接收到目标事件的目标线程是否为本发明实施例中所述的主动线程进行判断,从而根据判断结果的不同采取不同的处理策略,采用了与现有技术中不同的方式拦截事件,解决了相关技术中可能会造成误将病毒在后台的恶意行为识别为用户主动发起的正常行为而放行,从而导致用户损失的问题,达到了提高病毒查杀准确率的效果。

下面以本发明实施例提供的事件处理方法用于处理windows操作系统中的打开文件事件的场景的过程进行具体描述如下:

第一方面,说明堆栈数据库的建立/更新过程:收集到用户正常操作文件的线程的堆栈信息,提取出其中的部分关键要素,如堆栈调用序号、模块名、函数名、函数偏移等,并进行格式化,利用格式化的关键要素归纳出堆栈特征。在得到堆栈特征之后,加入堆栈特征库,堆栈特征库中存储有多种用户主动操作行为的堆栈特征。

第二方面,说明主动进程、线程集合的建立/更新过程:进而,如图3所示,利用如下规则确定线程是否为主动线程:

①hook操作系统调用的消息派发api函数dispatchmessage,接收到针对输入设备窗口界面的响应消息的线程是主动线程;

②hook操作系统创建线程的底层api如ntcreatethreadex,由主动进程、线程集合中的主动线程创建的子线程是主动线程;

③hook操作系统创建进程的底层api如ntcreateuserprocess,由主动进程、线程集合中的主动线程创建的子进程是主动进程;

④hook操作系统创建线程的底层api如ntcreatethreadex,由主动进程、线程集合中的主动进程创建的主线程是主动线程。

此外,如图3所示,主动进程、线程集合中还包括利用堆栈特征库匹配成功的线程,具体的,拦截指定事件,例如,hook操作系统的api函数ntcreatefile、ntopenfile等,以拦截打开文件的事件,获取线程的堆栈信息,并与堆栈特征库中的任意一种堆栈特征匹配成功的情况下,确定线程为主动线程,并加入主动进程、线程集合。

第三方面,说明监测打开文件的事件并处理的过程,如图4所示:

利用hook拦截操作系统提供打开文件服务的api函数如ntcreatefile、ntopenfile等,在有打开文件的事件发生时,调用打开文件的服务之前,截获打开文件事件的相关信息,包括请求的权限、以及对应线程的堆栈信息(包括当前的api调用过程信息)。

如果确定请求的权限不包括请求文件内容的读或写权限,则允许执行打开文件,如果确定请求的权限包括请求文件内容的读或写权限,则先判断该事件是否是shellcode执行的,如果是,则禁止打开文件,如果不是,则判断打开文件事件是否由用户主动的操作行为所触发,也即,判断接收到打开文件事件的线程是否为主动线程。

在判断打开文件事件是否由用户主动的操作行为所触发时,利用堆栈特征库中的每个堆栈特征与打开文件的线程的堆栈信息进行匹配,如果存在匹配成功的堆栈特征,则确定线程为主动线程,也即,打开文件是用户主动操作行为,允许打开文件,否则,判断线程是否在主动进程、线程集合中。如果判断出线程是否在主动进程、线程集合中,还需要回溯指定层级,验证回溯的每一层线程是否在主动进程、线程集合中,如果在,则确定线程为主动线程。

如果当前的线程不是主动线程,或者回溯的任一层级的线程不是主动线程,进一步判断文件是否是被拖动、复制或粘贴,如果是,则确定打开文件是用户主动操作行为,否则,阻止执行打开文件。

进一步地,在每一次禁止打开文件时,记录工作日志,并发送给服务端以供进一步的分析。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种事件处理装置,该装置用于实现上述事件处理方法的实施例及可选的实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图5是根据本发明实施例的一种可选的事件处理装置的结构框图,如图5所示,该装置包括:获取单元10,判断单元20,第一执行单元30和第二执行单元40。

其中,获取单元用于在监测出接收到目标事件的情况下,获取接收到目标事件的目标线程的目标信息;判断单元用于利用目标信息判断目标事件是否由用户操作行为所触发;第一执行单元用于如果是,则允许目标线程执行目标事件对应的操作;第二执行单元用于如果否,则禁止目标线程执行目标事件对应的操作。

可选的,目标信息包括当前堆栈信息,判断单元包括:第一判断模块,用于判断目标线程的当前堆栈信息是否与预设堆栈特征相匹配,其中,预设堆栈特征为预先在接收到用户操作行为的线程的堆栈信息中提取出的特征,其中,如果匹配,则确定目标线程是主动线程。

可选的,该装置还包括:添加模块,用于在确定目标事件是由用户操作行为所触发之后,将目标线程加入目标集合,其中,目标集合中还包括利用预设规则在操作系统的进程和线程中确定出的主动进程和主动线程,预设规则包括:接收到针对输入设备窗口界面的响应消息的线程是主动线程,由目标集合中的主动线程创建的子线程是主动线程,由目标集合中的主动线程创建的子进程是主动进程,由目标集合中的主动进程的主线程是主动线程;以及第二判断模块,用于在第一判断模块判断出目标线程的当前堆栈信息与预设堆栈特征不匹配的情况下,判断目标线程是否在目标集合中,其中,如果目标线程不在目标集合中,则确定目标事件不是由用户操作行为所触发。

可选的,该装置还包括:回溯模块,用于在判断出目标线程不在目标集合中的情况下,对目标线程回溯指定层级;第三判断模块,用于判断每一层级的线程是否在目标集合中,其中,如果是,则目标事件是由用户操作行为所触发,如果否,则目标事件不是由用户操作行为所触发。

可选的,该装置还包括:删除模块,用于在目标集合中的进程或线程结束的情况下,在目标集合中删除对应的进程或线程。

可选的,该装置还包括:监测模块,用于在获取单元获取接收到目标事件的目标线程的目标信息之前,利用hook机制监测操作系统的目标功能是否被调用,其中,如果是,则确定监测出接收到目标事件。

可选的,在目标功能用于打开目标文件,目标信息包括调用目标功能所请求的权限的情况下,该装置还包括:第四判断模块,用于在判断单元利用目标信息判断目标事件是否由用户操作行为所触发之前,判断调用目标功能所请求的权限是否包括对目标文件的内容的读权限或写权限,其中,如果是,则利用目标信息判断目标事件是否由用户操作行为所触发,如果否,则允许目标线程调用目标功能。

可选的,在目标功能用于打开目标文件的情况下,该装置还包括:第五判断模块,用于在禁止目标线程执行目标事件对应的操作之前,判断目标文件是否被拖动、复制或粘贴,其中,如果是,则允许目标线程调用目标功能,如果否,禁止目标线程调用目标功能。

可选的,该装置还包括:第六判断模块,用于在利用目标信息判断目标事件是否由用户操作行为所触发之前,判断目标事件是否由指定漏洞代码执行,其中,如果是,则禁止目标线程执行目标事件对应的操作,如果否,则利用目标信息判断目标事件是否由用户操作行为所触发。

本发明实施例提供的事件处理装置,判断接收到的目标事件是否为用户操作行为,也即,对接收到目标事件的目标线程是否为本发明实施例中所述的主动线程进行判断,从而根据判断结果的不同采取不同的处理策略,采用了与现有技术中不同的方式拦截事件,解决了相关技术中可能会造成误将病毒在后台的恶意行为识别为用户主动发起的正常行为而放行,从而导致用户损失的问题,达到了提高病毒查杀准确率的效果。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

实施例4

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1