得到第一判断子结果;否则,得到第二判断子结果。
[0116]具体地,第一确定模块可以包括:第一确定子模块,用于在得到第一判断子结果时,确定应用程序不存在内存泄露漏洞;第二确定子模块,用于在得到第二判断子结果时,确定应用程序存在内存泄露漏洞。
[0117]通过本发明上述实施例,在建立数据监听接口之后,获取用户的当前选择事件,从当前选择事件中提取当前选定的内存对象ID,通过内存对象ID获取当前选定的内存对象记录的内存对象的对象属性数据。在对象属性数据中的对象名称符合预设位图对象名称时,确定该内存对象为位图对象,获取该内存对象的像素属性数据和尺寸属性数据,基于像素属性数据和尺寸属性数据在预定展示区域绘制内存对象记录的图片,使用该预定展示区域绘制的图片判断应用程序是否存在内存泄露漏洞。
[0118]在上述实施例中通过在使用该预定展示区域绘制的图片判断应用程序是否存在内存泄露漏洞,不仅可以直观地查看图片内容,使得内存图片测试很容易;进一步地,可以大幅提高andr1d内存分析中对于图片分析的准确度,并且简化了检测流程,降低了分析成本。
[0119]本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例一中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
[0120]实施例3
[0121]本发明的实施例还提供了一种终端或服务器。可选地,在本实施例中,上述终端可以执行用于内存泄露漏洞的检测方法,上述实施例中的用于内存泄露漏洞的检测装置可以设置在该终端或服务器上。
[0122]图9是根据本发明实施例的一种终端的结构框图。如图9所示,该终端200可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205,如图9所示,该终端还可以包括输入输出设备207和天线209。
[0123]其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的用于内存泄露漏洞的检测方法和装置对应的程序指令/模块,处理器201通过运行存储在存储203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的用于内存泄露漏洞的检测方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端200。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组入口 ο
[0124]上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Rad1 Frequency, RF)模块,其用于通过无线方式与互联网进行通讯。
[0125]其中,具体地,存储器203用于存储应用程序。
[0126]处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:获取内存数据中当前选定的内存对象记录,其中,内存数据为终端的内存记录的使用终端上应用程序时产生的数据,内存数据中包括一条或多条内存对象记录;在预定展示区域绘制当前选定的内存对象记录所指示的对象图片;判断对象图片是否存在于终端的缓存中,或者对象图片是否为应用程序的当前界面显示的图片,得到判断结果;使用判断结果确定应用程序是否存在内存泄露漏洞。
[0127]采用本发明实施例,在获取内存数据中当前选定的内存对象记录之后,在预定展示区域绘制当前选定的内存对象记录所指示的对象图片,然后通过对象图片是否存在于终端的缓存中,或者对象图片是否为应用程序的当前界面显示的图片,确定应用程序是否存在内存泄露漏洞。在上述实施例中,通过预定展示区域中展示的图片,可以直观准确判断应用程序是否存在内存泄露漏洞,从而解决了现有技术中通过查询图片对象的代码逻辑检测内存泄露漏洞,检测准确性低的问题,实现了准确检测因图片产生的内存泄露漏洞的效果。
[0128]在本发明的上述实施例中,处理器还用于执行下述操作:根据当前选定的内存对象记录的内存对象ID获取内存对象的对象属性数据;在通过对象属性数据确定内存对象为位图对象的情况下,从终端的内存中读取位图对象的像素属性数据和尺寸属性数据;基于位图对象的像素属性数据和尺寸属性数据生成位图对象的图像对象;将图像对象绘制在预定展示区域,以展示对象图片。
[0129]可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0130]需要进一步说明的是,寄存区域为系统的内存和系统处理器中的寄存器。
[0131]本领域普通技术人员可以理解,图9所示的结构仅为示意,终端可以是智能手机(如Android手机、1S手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices, MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,终端200还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。
[0132]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory, RAM)、磁盘或光盘等。
[0133]实施例4
[0134]本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于内存泄露漏洞的检测方法的程序代码。
[0135]可选地,在本实施例中,上述存储介质可以位于实施例3所示的终端上。
[0136]可选地,在本实施例中,上述存储介质可以位于网络中的多个网络设备中的一个网络设备上。
[0137]可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0138]步骤S1:获取内存数据中当前选定的内存对象记录,其中,内存数据为终端的内存记录的使用终端上应用程序时产生的数据,内存数据中包括一条或多条内存对象记录。
[0139]步骤S2:在预定展示区域绘制当前选定的内存对象记录所指示的对象图片。
[0140]步骤S3:判断对象图片是否存在于终端的缓存中,或者对象图片是否为应用程序的当前界面显示的图片,得到判断结果。
[0141]步骤S4:使用判断结果确定应用程序是否存在内存泄露漏洞。
[0142]通过本发明实施例,在获取内存数据中当前选定的内存对象记录之后,在预定展示区域绘制当前选定的内存对象记录所指示的对象图片,然后通过对象图片是否存在于终端的缓存中,或者对象图片是否为应用程序的当前界面显示的图片,确定应用程序是否存在内存泄露漏洞。在上述实施例中,通过预定展示区域中展示的图片,可以直观准确判断应用程序是否存在内存泄露漏洞,从而解决了现有技术中通过查询图片对象的代码逻辑检测内存泄露漏洞,检测准确性低的问题,实现了准确检测因图片产生的内存泄露漏洞的效果。
[0143]可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取对象图片的第一图片信息,并获取终端缓存的缓存图片的第二图片信息和应用程序的当前界面显示的图片的第三图片信息,通过比较第一图片信息和第二图片信息判断对象图片是否存在于终端的缓存中;以及通过比较第一图片信息和第三图片信息判断对象图片是否为应用程序的当前界面显示的图片。
[0144]可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(R0M,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0145]可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0146]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0147]上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0148]在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0149]在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0150]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0151]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理