[發明專利]一種Fuzz測試中的程序流跟蹤方法及裝置有效
| 申請號: | 201610082897.6 | 申請日: | 2016-02-05 |
| 公開(公告)號: | CN107045474B | 公開(公告)日: | 2020-12-04 |
| 發明(設計)人: | 朱東海 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F11/34 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 朱佳 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 fuzz 測試 中的 程序 跟蹤 方法 裝置 | ||
1.一種Fuzz測試中的程序流跟蹤方法,其特征在于,包括:
生成一個測試樣本,并啟動一個監視進程;
通過預先配置的應用程序編程接口API調用中央處理器CPU,基于當前啟動的一個監視進程,采用相應的一個測試樣本對待測試程序進行測試;
記錄測試過程中產生的程序流。
2.如權利要求1所述的方法,其特征在于,生成一個測試樣本之前,進一步包括:
判斷本地是否設置有能夠調用CPU完成程序流跟蹤功能的API,確定存在時,判定本地的CPU支持程序流跟蹤功能。
3.如權利要求1或2所述的方法,其特征在于,記錄測試過程中產生的程序流,包括:
將測試過程中產生的程序流保存至緩存區,每當確定緩存區已滿時,將緩存區中當前保存的程序流保存至指定的存儲位置,并清空緩存區,以及繼續在緩存區中記錄后續產生的程序流。
4.如權利要求1或2所述的方法,其特征在于,進一步包括:
監測到當前啟動的一個監視進程退出時,確定相應的一個測試樣本執行完畢;
提取執行所述一個測試樣本的過程中,CPU跟蹤并記錄的程序流;
對提取的程序流進行分析,根據分析結果判定待測試程序發生異常時,進行告警。
5.如權利要求4所述的方法,其特征在于,進一步包括:
確定一個測試樣本執行完畢且對相應的程序流進行分析后,根據分析結果判斷是否存在新的代碼分支,若是,則保存所述一個測試樣本,否則,丟棄所述一個測試樣本。
6.如權利要求5所述的方法,其特征在于,進一步包括:
若保存所述一個測試樣本,則基于所述一個測試樣本,生成一個新的測試樣本,以及啟動一個新的監測進程,并通過所述API調度CPU,基于所述一個新的監測進程,采用所述一個新的測試樣本繼續對所述待測試程序進行測試,以及記錄測試過程中產生的程序流;
若丟棄所述一個測試樣本,則根據指令重新生成一個新的測試樣本,以及啟動一個新的監測進程,并通過所述API調度CPU,基于所述一個新的監測進程,采用所述一個新的測試樣本繼續對所述待測試程序進行測試,以及記錄測試過程中產生的程序流。
7.一種Fuzz測試中的程序流跟蹤裝置,其特征在于,包括:
生成單元,用于生成一個測試樣本,并啟動一個監視進程;
處理單元,用于通過預先配置的應用程序編程接口API調用中央處理器CPU,基于當前啟動的一個監視進程,采用相應的一個測試樣本對待測試程序進行測試;
記錄單元,用于記錄測試過程中產生的程序流。
8.如權利要求7所述的裝置,其特征在于,生成一個測試樣本之前,所述生成單元進一步用于:
判斷本地是否設置有能夠調用CPU完成程序流跟蹤功能的API,確定存在時,判定本地的CPU支持程序流跟蹤功能。
9.如權利要求7或8所述的裝置,其特征在于,記錄測試過程中產生的程序流時,所述記錄單元用于:
將測試過程中產生的程序流保存至緩存區,每當確定緩存區已滿時,將緩存區中當前保存的程序流保存至指定的存儲位置,并清空緩存區,以及繼續在緩存區中記錄后續產生的程序流。
10.如權利要求7或8所述的裝置,其特征在于,所述處理單元進一步包括:
監測到當前啟動的一個監視進程退出時,確定相應的一個測試樣本執行完畢;
提取執行所述一個測試樣本的過程中,CPU跟蹤并記錄的程序流;
對提取的程序流進行分析,根據分析結果判定待測試程序發生異常時,進行告警。
11.如權利要求10所述的裝置,其特征在于,所述處理單元進一步用于:
確定一個測試樣本執行完畢且對相應的程序流進行分析后,根據分析結果判斷是否存在新的代碼分支,若是,則保存所述一個測試樣本,否則,丟棄所述一個測試樣本。
12.如權利要求11所述的裝置,其特征在于,若保存所述一個測試樣本,則所述生成單元進一步用于:
基于所述一個測試樣本,生成一個新的測試樣本,以及啟動一個新的監測進程;
所述處理單元進一步用于:
通過所述API調度CPU,基于所述一個新的監測進程,采用所述一個新的測試樣本繼續對所述待測試程序進行測試,以及記錄測試過程中產生的程序流;
若丟棄所述一個測試樣本,則所述生成單元進一步用于:
根據指令重新生成一個新的測試樣本,以及啟動一個新的監測進程;
所述處理單元進一步用于:
通過所述API調度CPU,基于所述一個新的監測進程,采用所述一個新的測試樣本繼續對所述待測試程序進行測試,以及記錄測試過程中產生的程序流。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610082897.6/1.html,轉載請聲明來源鉆瓜專利網。





