[發(fā)明專利]一種面向AFL的自適應(yīng)Bitmap表調(diào)整方法及裝置有效
| 申請?zhí)枺?/td> | 202010117203.4 | 申請日: | 2020-02-25 |
| 公開(公告)號: | CN111367794B | 公開(公告)日: | 2023-05-23 |
| 發(fā)明(設(shè)計)人: | 王世晞;張亮 | 申請(專利權(quán))人: | 杭州世平信息科技有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 西安通大專利代理有限責任公司 61200 | 代理人: | 房鑫 |
| 地址: | 310012 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 afl 自適應(yīng) bitmap 調(diào)整 方法 裝置 | ||
一種面向AFL的自適應(yīng)Bitmap表調(diào)整方法及裝置,調(diào)整方法包括:分別以不同的Bitmap表大小插樁目標程序,形成多個版本的可執(zhí)行程序;按照Bitmap表從小到大的順序?qū)λ锌蓤?zhí)行程序進行Fuzz,同時檢測Bitmap表的密度,當bitmap表的密度大于80%時,切換到下一個版本的可執(zhí)行程序。本發(fā)明同時提供了一種面向AFL的自適應(yīng)Bitmap表調(diào)整裝置、終端設(shè)備以及計算機可讀存儲介質(zhì),本發(fā)明能夠同時編譯生成多個不同Bitmap大小版本的程序,并以種子文件作為媒介,在切換不同版本程序的測試時重建Bitmap表,解決了AFL固定Bitmap表大小不能隨著程序的增長而變化的問題,減少模糊測試沖突。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件工程領(lǐng)域,具體涉及一種面向AFL的自適應(yīng)Bitmap表調(diào)整方法及裝置。
背景技術(shù)
Fuzz也叫模糊測試,是一種通過不斷變換輸入,自動測試目標程序的方法。AFL的全稱是American?Fuzzy?Lop,是一個著名的模糊測試工具。AFL采用了一個Bitmap表記錄被測程序的邊覆蓋率情況。這個Bitmap表被設(shè)定為固定大小64K,是為了能夠放入計算機的Cache中,從而提升性能。然而對于大型程序來說,程序規(guī)模會非常大,導致程序邊的數(shù)量非常多,遠遠大于64K。因此,對于64K的Bitmap來說,這些大程序測試會經(jīng)常出現(xiàn)邊沖突的情況,即出現(xiàn)多個邊的信息被存放在Bitmap中的同一個位置。邊沖突會導致AFL錯過發(fā)現(xiàn)新路徑的機會,從而降低測試效率。然而Bitmap表也不宜一開始就設(shè)置過大,因為這樣會導致bitmap表不能放入Cache中,從而降低Fuzz效率。根據(jù)CollAFL的調(diào)查,AFL?bitmap存在邊沖突的問題。通過簡單的增大bitmap可以減少邊沖突,但是會影響Fuzz的性能。因此可以考慮動態(tài)的增加bitmap的大小,開始的時候設(shè)置比較小的Bitmap,隨著測試過程的推進,Bitmap表的密度在增加,邊沖突的概率隨之增加,這時可增加Bitmap的大小來減少沖突。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中Bitmap表邊沖突與Fuzz性能之間存在矛盾的問題,提供一種面向AFL的自適應(yīng)Bitmap表調(diào)整方法及裝置,實現(xiàn)bitmap的大小動態(tài)增加。
為了實現(xiàn)上述目的,本發(fā)明有如下的技術(shù)方案:
一種面向AFL的自適應(yīng)Bitmap表調(diào)整方法,包括以下步驟:
分別以不同的Bitmap表大小插樁目標程序,形成多個版本的可執(zhí)行程序;
按照Bitmap表從小到大的順序?qū)λ械目蓤?zhí)行程序進行Fuzz,同時檢測Bitmap表的密度,當bitmap表的密度大于80%時,切換到下一個版本的可執(zhí)行程序,切換步驟如下:
首先停止對當前版本程序V的測試,并收集當前所有的種子文件;
遍歷種子文件隊列,以種子文件為輸入,運行下一個版本的程序V’,生成新的Bitmap;
在新的Bitmap基礎(chǔ)上,重新開始測試下一個版本的程序V’;
循環(huán)上述切換步驟,直至最后一個版本的可執(zhí)行程序。
優(yōu)選的,在本發(fā)明面向AFL的自適應(yīng)Bitmap表調(diào)整方法一種實施例中,Bitmap表的大小包括64K、128K、256K和512K,形成的可執(zhí)行程序為V64k、V128k、V256k和V512k。
優(yōu)選的,在本發(fā)明面向AFL的自適應(yīng)Bitmap表調(diào)整方法一種實施例中,首先對初始版本的可執(zhí)行程序V64k進行Fuzz,同時檢測Bitmap表的密度,當bitmap表的密度大于80%時,切換到可執(zhí)行程序V128k,按順序依次進行相同的操作,直到可執(zhí)行程序V512k。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于杭州世平信息科技有限公司,未經(jīng)杭州世平信息科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010117203.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 使用后向自適應(yīng)規(guī)則進行整數(shù)數(shù)據(jù)的無損自適應(yīng)Golomb/Rice編碼和解碼
- 一種自適應(yīng)軟件UML建模及其形式化驗證方法
- 媒體自適應(yīng)參數(shù)的調(diào)整方法、系統(tǒng)及相關(guān)設(shè)備
- 五自由度自適應(yīng)位姿調(diào)整平臺
- 采用自適應(yīng)機匣和自適應(yīng)風扇的智能發(fā)動機
- 一種自適應(yīng)樹木自動涂白裝置
- 一種基于微服務(wù)的多層次自適應(yīng)方法
- 一種天然氣發(fā)動機燃氣自適應(yīng)控制方法及系統(tǒng)
- 一種中心自適應(yīng)的焊接跟蹤機頭
- 一種有砟軌道沉降自適應(yīng)式軌道系統(tǒng)





