存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0152]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種用于內(nèi)存泄露漏洞的檢測(cè)方法,其特征在于,包括: 獲取內(nèi)存數(shù)據(jù)中當(dāng)前選定的內(nèi)存對(duì)象記錄,其中,所述內(nèi)存數(shù)據(jù)為終端的內(nèi)存記錄的使用所述終端上應(yīng)用程序時(shí)產(chǎn)生的數(shù)據(jù),所述內(nèi)存數(shù)據(jù)中包括一條或多條所述內(nèi)存對(duì)象記錄; 在預(yù)定展示區(qū)域繪制所述當(dāng)前選定的內(nèi)存對(duì)象記錄所指示的對(duì)象圖片; 判斷所述對(duì)象圖片是否存在于所述終端的緩存中,或者所述對(duì)象圖片是否為所述應(yīng)用程序的當(dāng)前界面顯示的圖片,得到判斷結(jié)果; 使用所述判斷結(jié)果確定所述應(yīng)用程序是否存在內(nèi)存泄露漏洞。2.根據(jù)權(quán)利要求1所述的檢測(cè)方法,其特征在于,在預(yù)定展示區(qū)域繪制所述當(dāng)前選定的內(nèi)存對(duì)象記錄所指示的對(duì)象圖片包括: 根據(jù)所述當(dāng)前選定的內(nèi)存對(duì)象記錄的內(nèi)存對(duì)象ID獲取內(nèi)存對(duì)象的對(duì)象屬性數(shù)據(jù); 在通過(guò)所述對(duì)象屬性數(shù)據(jù)確定所述內(nèi)存對(duì)象為位圖對(duì)象的情況下,從所述終端的內(nèi)存中讀取所述位圖對(duì)象的像素屬性數(shù)據(jù)和尺寸屬性數(shù)據(jù); 基于所述位圖對(duì)象的像素屬性數(shù)據(jù)和所述尺寸屬性數(shù)據(jù)生成所述位圖對(duì)象的圖像對(duì)象; 將所述圖像對(duì)象繪制在預(yù)定展示區(qū)域,以展示所述對(duì)象圖片。3.根據(jù)權(quán)利要求2所述的檢測(cè)方法,其特征在于,基于所述位圖對(duì)象的像素屬性數(shù)據(jù)和所述尺寸屬性數(shù)據(jù)生成所述位圖對(duì)象的圖像對(duì)象包括: 對(duì)所述像素屬性數(shù)據(jù)和所述尺寸屬性數(shù)據(jù)進(jìn)行像素解碼,得到像素解析數(shù)組; 獲取所述像素解析數(shù)組中各個(gè)元素的像素顏色,其中,所述像素解析數(shù)組中每個(gè)元素代表所述位圖對(duì)象中的一個(gè)像素; 基于所述各個(gè)元素的像素顏色和所述尺寸屬性數(shù)據(jù)生成所述位圖對(duì)象的所述圖像對(duì)象。4.根據(jù)權(quán)利要求3所述的檢測(cè)方法,其特征在于,對(duì)所述像素屬性數(shù)據(jù)和所述尺寸屬性數(shù)據(jù)進(jìn)行像素解碼,得到像素解析數(shù)組包括: 根據(jù)所述尺寸屬性數(shù)據(jù)的高度和所述尺寸屬性數(shù)據(jù)的寬度生成原始像素矩陣,其中,所述尺寸屬性數(shù)據(jù)的高度值為N,所述尺寸屬性數(shù)據(jù)的寬度值為M,所述原始像素矩陣為N行Μ列的矩陣或?yàn)棣笑械木仃嚕龀叽鐚傩詳?shù)據(jù)的高度和所述尺寸屬性數(shù)據(jù)的寬度以像素為單位; 從所述像素屬性數(shù)據(jù)中獲取所述原始像素矩陣中各個(gè)元素的顏色通道數(shù)據(jù),其中,所述顏色通道數(shù)據(jù)包括透明度通道數(shù)據(jù)、紅色通道數(shù)據(jù)、綠色通道數(shù)據(jù)和藍(lán)色通道數(shù)據(jù); 將各個(gè)所述元素的顏色通道數(shù)據(jù)保存入所述原始像素矩陣的所述元素中,得到所述像素解析數(shù)組。5.根據(jù)權(quán)利要求3所述的檢測(cè)方法,其特征在于,獲取所述像素解析數(shù)組中各個(gè)元素的像素顏色包括: 依次在顏色表中檢索所述像素解析數(shù)組中各個(gè)元素的所述像素顏色。6.根據(jù)權(quán)利要求1所述的檢測(cè)方法,其特征在于,獲取內(nèi)存數(shù)據(jù)中當(dāng)前選定的內(nèi)存對(duì)象記錄包括: 創(chuàng)建數(shù)據(jù)監(jiān)聽接口; 調(diào)用所述數(shù)據(jù)監(jiān)聽接口監(jiān)聽工作窗口中的所述當(dāng)前選定的內(nèi)存對(duì)象記錄,其中,所述工作窗口中顯示有所述內(nèi)存數(shù)據(jù)。7.根據(jù)權(quán)利要求6所述的檢測(cè)方法,其特征在于,調(diào)用所述數(shù)據(jù)監(jiān)聽接口監(jiān)聽工作窗口中的所述當(dāng)前選定的內(nèi)存對(duì)象記錄包括: 通過(guò)所述數(shù)據(jù)監(jiān)聽接口監(jiān)聽在所述工作窗口中發(fā)生的當(dāng)前選擇事件; 從所述當(dāng)前選擇事件中提取內(nèi)存對(duì)象ID ; 獲取所述內(nèi)存對(duì)象ID所指示的所述當(dāng)前選定的內(nèi)存對(duì)象記錄。8.根據(jù)權(quán)利要求2至7中任意一項(xiàng)所述的檢測(cè)方法,其特征在于, 根據(jù)所述當(dāng)前選定的內(nèi)存對(duì)象記錄的內(nèi)存對(duì)象ID獲取內(nèi)存對(duì)象的對(duì)象屬性數(shù)據(jù)包括:從所述終端的所述內(nèi)存中讀取所述內(nèi)存對(duì)象ID所指向的所述內(nèi)存對(duì)象的對(duì)象名稱,其中,所述對(duì)象屬性數(shù)據(jù)包括所述內(nèi)存對(duì)象的所述對(duì)象名稱; 在從所述終端的內(nèi)存中讀取所述內(nèi)存對(duì)象ID指向的所述內(nèi)存對(duì)象的對(duì)象名稱之后,所述檢測(cè)方法還包括: 判斷所述對(duì)象名稱是否為預(yù)設(shè)位圖對(duì)象名稱; 若所述對(duì)象名稱為所述預(yù)設(shè)位圖對(duì)象名稱,則確認(rèn)所述內(nèi)存對(duì)象為所述位圖對(duì)象; 若所述對(duì)象名稱不為所述預(yù)設(shè)位圖對(duì)象名稱,則確認(rèn)所述內(nèi)存對(duì)象不為所述位圖對(duì)象。9.根據(jù)權(quán)利要求1至7中任意一項(xiàng)所述的檢測(cè)方法,其特征在于, 判斷所述對(duì)象圖片是否存在于所述終端的緩存中,或者所述對(duì)象圖片是否為所述應(yīng)用程序的當(dāng)前界面顯示的圖片,得到判斷結(jié)果包括:在所述對(duì)象圖片不存在于所述終端的緩存中且所述對(duì)象圖片為所述應(yīng)用程序的當(dāng)前界面顯示的圖片時(shí),得到第一判斷子結(jié)果;否貝U,得到第二判斷子結(jié)果; 使用所述判斷結(jié)果確定所述應(yīng)用程序是否存在內(nèi)存泄露漏洞包括:在得到所述第一判斷子結(jié)果時(shí),確定所述應(yīng)用程序不存在所述內(nèi)存泄露漏洞;在得到所述第二判斷子結(jié)果時(shí),確定所述應(yīng)用程序存在所述內(nèi)存泄露漏洞。10.一種用于內(nèi)存泄露漏洞的檢測(cè)裝置,其特征在于,包括: 獲取模塊,用于獲取內(nèi)存數(shù)據(jù)中當(dāng)前選定的內(nèi)存對(duì)象記錄,其中,所述內(nèi)存數(shù)據(jù)為終端的內(nèi)存記錄的使用所述終端上應(yīng)用程序時(shí)產(chǎn)生的數(shù)據(jù),所述內(nèi)存數(shù)據(jù)中包括一條或多條所述內(nèi)存對(duì)象記錄; 繪制模塊,用于在預(yù)定展示區(qū)域繪制所述當(dāng)前選定的內(nèi)存對(duì)象記錄所指示的對(duì)象圖片; 第一判斷模塊,用于判斷所述對(duì)象圖片是否存在于所述終端的緩存中,或者所述對(duì)象圖片是否為所述應(yīng)用程序的當(dāng)前界面顯示的圖片,得到判斷結(jié)果; 第一確定模塊,用于使用所述判斷結(jié)果確定所述應(yīng)用程序是否存在內(nèi)存泄露漏洞。11.根據(jù)權(quán)利要求10所述的檢測(cè)裝置,其特征在于,所述繪制模塊包括: 第一獲取子模塊,用于根據(jù)所述當(dāng)前選定的內(nèi)存對(duì)象記錄的內(nèi)存對(duì)象ID獲取內(nèi)存對(duì)象的對(duì)象屬性數(shù)據(jù); 第一讀取子模塊,用于在通過(guò)所述對(duì)象屬性數(shù)據(jù)確定所述內(nèi)存對(duì)象為位圖對(duì)象的情況下,從所述終端的內(nèi)存中讀取所述位圖對(duì)象的像素屬性數(shù)據(jù)和尺寸屬性數(shù)據(jù); 生成模塊,用于基于所述位圖對(duì)象的像素屬性數(shù)據(jù)和所述尺寸屬性數(shù)據(jù)生成所述位圖對(duì)象的圖像對(duì)象; 繪制子模塊,用于將所述圖像對(duì)象繪制在預(yù)定展示區(qū)域,以展示所述對(duì)象圖片。12.根據(jù)權(quán)利要求11所述的檢測(cè)裝置,其特征在于,所述生成模塊包括: 解碼模塊,用于對(duì)所述像素屬性數(shù)據(jù)和所述尺寸屬性數(shù)據(jù)進(jìn)行像素解碼,得到像素解析數(shù)組; 第二獲取子模塊,用于獲取所述像素解析數(shù)組中各個(gè)元素的像素顏色,其中,所述像素解析數(shù)組中每個(gè)元素代表所述位圖對(duì)象中的一個(gè)像素; 第一生成子模塊,用于基于所述各個(gè)元素的像素顏色和所述尺寸屬性數(shù)據(jù)生成所述位圖對(duì)象的所述圖像對(duì)象。13.根據(jù)權(quán)利要求12所述的檢測(cè)裝置,其特征在于,所述解碼模塊包括: 第二生成子模塊,用于根據(jù)所述尺寸屬性數(shù)據(jù)的高度和所述尺寸屬性數(shù)據(jù)的寬度生成原始像素矩陣,其中,所述尺寸屬性數(shù)據(jù)的高度值為N,所述尺寸屬性數(shù)據(jù)的寬度值為M,所述原始像素矩陣為N行Μ列的矩陣或?yàn)棣笑械木仃?,所述尺寸屬性?shù)據(jù)的高度和所述尺寸屬性數(shù)據(jù)的寬度以像素為單位; 第三獲取子模塊,用于從所述像素屬性數(shù)據(jù)中獲取所述原始像素矩陣中各個(gè)元素的顏色通道數(shù)據(jù),其中,所述顏色通道數(shù)據(jù)包括透明度通道數(shù)據(jù)、紅色通道數(shù)據(jù)、綠色通道數(shù)據(jù)和藍(lán)色通道數(shù)據(jù); 保存模塊,用于將各個(gè)所述元素的顏色通道數(shù)據(jù)保存入所述原始像素矩陣的所述元素中,得到所述像素解析數(shù)組。14.根據(jù)權(quán)利要求12所述的檢測(cè)裝置,其特征在于,所述第二獲取子模塊包括: 檢索模塊,用于依次在顏色表中檢索所述像素解析數(shù)組中各個(gè)元素的所述像素顏色。15.根據(jù)權(quán)利要求10所述的檢測(cè)裝置,其特征在于,所述獲取模塊包括: 創(chuàng)建模塊,用于創(chuàng)建數(shù)據(jù)監(jiān)聽接口 ; 調(diào)用模塊,用于調(diào)用所述數(shù)據(jù)監(jiān)聽接口監(jiān)聽工作窗口中的所述當(dāng)前選定的內(nèi)存對(duì)象記錄,其中,所述工作窗口中顯示有所述內(nèi)存數(shù)據(jù)。16.根據(jù)權(quán)利要求15所述的檢測(cè)裝置,其特征在于,所述調(diào)用模塊包括: 監(jiān)聽模塊,用于通過(guò)所述數(shù)據(jù)監(jiān)聽接口監(jiān)聽在所述工作窗口中發(fā)生的當(dāng)前選擇事件; 提取模塊,用于從所述當(dāng)前選擇事件中提取內(nèi)存對(duì)象ID ; 第四獲取子模塊,用于獲取所述內(nèi)存對(duì)象ID所指示的所述當(dāng)前選定的內(nèi)存對(duì)象記錄。17.根據(jù)權(quán)利要求11至16中任意一項(xiàng)所述的檢測(cè)裝置,其特征在于, 所述第一獲取子模塊包括:第二讀取子模塊,用于從所述終端的所述內(nèi)存中讀取所述內(nèi)存對(duì)象ID所指向的所述內(nèi)存對(duì)象的對(duì)象名稱,其中,所述對(duì)象屬性數(shù)據(jù)包括所述內(nèi)存對(duì)象的所述對(duì)象名稱; 所述檢測(cè)裝置還包括: 第二判斷模塊,用于在從所述終端的內(nèi)存中讀取所述內(nèi)存對(duì)象ID指向的所述內(nèi)存對(duì)象的對(duì)象名稱之后,判斷所述對(duì)象名稱是否為預(yù)設(shè)位圖對(duì)象名稱; 第二確定模塊,用于若所述對(duì)象名稱為所述預(yù)設(shè)位圖對(duì)象名稱,則確認(rèn)所述內(nèi)存對(duì)象為所述位圖對(duì)象; 第三確定模塊,用于若所述對(duì)象名稱不為所述預(yù)設(shè)位圖對(duì)象名稱,則確認(rèn)所述內(nèi)存對(duì)象不為所述位圖對(duì)象。18.根據(jù)權(quán)利要求10至16中任意一項(xiàng)所述的檢測(cè)裝置,其特征在于, 所述第一判斷模塊包括:第一判斷子模塊,用于在所述對(duì)象圖片不存在于所述終端的緩存中且所述對(duì)象圖片為所述應(yīng)用程序的當(dāng)前界面顯示的圖片時(shí),得到第一判斷子結(jié)果;否則,得到第二判斷子結(jié)果; 所述第一確定模塊包括:第一確定子模塊,用于在得到所述第一判斷子結(jié)果時(shí),確定所述應(yīng)用程序不存在所述內(nèi)存泄露漏洞;第二確定子模塊,用于在得到所述第二判斷子結(jié)果時(shí),確定所述應(yīng)用程序存在所述內(nèi)存泄露漏洞。
【專利摘要】本發(fā)明公開了一種用于內(nèi)存泄露漏洞的檢測(cè)方法和裝置。其中,該方法包括:獲取內(nèi)存數(shù)據(jù)中當(dāng)前選定的內(nèi)存對(duì)象記錄,其中,內(nèi)存數(shù)據(jù)為終端的內(nèi)存記錄的使用終端上應(yīng)用程序時(shí)產(chǎn)生的數(shù)據(jù),內(nèi)存數(shù)據(jù)中包括一條或多條內(nèi)存對(duì)象記錄;在預(yù)定展示區(qū)域繪制當(dāng)前選定的內(nèi)存對(duì)象記錄所指示的對(duì)象圖片;判斷對(duì)象圖片是否存在于終端的緩存中,或者對(duì)象圖片是否為應(yīng)用程序的當(dāng)前界面顯示的圖片,得到判斷結(jié)果;使用判斷結(jié)果確定應(yīng)用程序是否存在內(nèi)存泄露漏洞。通過(guò)本發(fā)明實(shí)施例,解決了現(xiàn)有技術(shù)中通過(guò)查詢圖片對(duì)象的代碼邏輯檢測(cè)內(nèi)存泄露漏洞,檢測(cè)準(zhǔn)確性低的問(wèn)題,實(shí)現(xiàn)了準(zhǔn)確檢測(cè)因圖片產(chǎn)生的內(nèi)存泄露漏洞的效果。
【IPC分類】G06F21/52, G06F11/36
【公開號(hào)】CN105373471
【申請(qǐng)?zhí)枴緾N201410438013
【發(fā)明人】付云雷, 黃聞欣, 汪斐
【申請(qǐng)人】騰訊科技(深圳)有限公司
【公開日】2016年3月2日
【申請(qǐng)日】2014年8月29日