1.一種融入原程序數據流的反模糊測試方法,其特征在于,生成多分支遞歸函數代碼、映射函數代碼、運算函數代碼的復雜函數,并將復雜函數插入源代碼,用復雜函數替換原程序的常量和表達式,對替換后的源代碼文件編譯后的程序進行模糊測試;該反模糊測試方法的步驟包括如下:
2.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟1中所述多分支遞歸函數代碼的生成步驟如下:
3.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟1中所述映射函數的代碼生成步驟如下:
4.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟1中所述的運算函數代碼生成步驟如下:
5.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟2中所述將多分支遞歸函數代碼、映射函數代碼、運算函數代碼插入源代碼指的是:將多分支遞歸函數代碼、映射函數代碼、運算函數代碼依次插入到源代碼中,插入位置位于源代碼原有函數的前方,源代碼定義與全局變量聲明的后方。
6.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟4中所述的所提取的函數是否存在注釋指的是:判斷所提取的函數中是否存在要求不進行反模糊測試的注釋。
7.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟6中所述用映射函數代碼替換函數代碼中的常量指的是:遍歷函數代碼,尋找代碼中存在的常數或者定義的常量,將尋找到的常數或常量更改為映射函數代碼,映射函數代碼的輸入參數為函數代碼的輸入參數加上隨機值。
8.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟7中所述的用運算函數代碼替換函數代碼的表達式指的是:遍歷函數代碼,尋找代碼中存在的表達式,將尋找到的表達式轉換為逆波蘭表達式;通過棧的存取,獲取逆波蘭表達式中的二元子表達式,將二元子表達式替換為功能相同的運算函數代碼,其中運算函數代碼的參數為二元子表達式的兩個參數以及遞歸的深度。
9.根據權利要求1所述的一種融入原程序數據流的反模糊測試方法,其特征在于,步驟8中所述的對替換后的源代碼文件編譯后的程序進行模糊測試的步驟如下: