国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

The Fuzzing Book 之 樣本突變Fuzzing(二)

2023-07-21 19:27 作者:l140w4n9  | 我要投稿

class ProgramCoverage:


??def __init__(self, source_path: str) -> None:

????self._coverage = set()

????self.reports = []

????self.rest(source_path)


??def rest(self, source_path):

????self.source_path = source_path

????self._sources = []

????for filepath, dirnames, filenames in os.walk(source_path):

??????for filename in filenames:

????????if filename.endswith('.c'):

??????????fullname = os.path.join(filepath, filename)

??????????self._sources.append(fullname)


??def sources(self) -> List:

????return self._sources


??def trace(self):

????old_work_dir = os.getcwd()

????os.chdir(self.source_path)

????for source in self._sources:

??????gcov_come = subprocess.run(

????????["gcov", source],

????????stdin=subprocess.PIPE,

????????stderr=subprocess.PIPE,

????????stdout=subprocess.PIPE,

????????universal_newlines=True

??????)

??????if gcov_come.stdout != '':

????????self.reports.append((source, gcov_come.stdout))

????????gcov_file = source + ".gcov"

????????with open(gcov_file, 'r') as f:

??????????for line in f.readlines():

????????????if line.startswith('??#####:?'):

??????????????self._coverage.add((source, int(line.strip('??#####:?').split(':')[0])))

????os.chdir(old_work_dir)


??def coverage(self) -> any:

????return self._coverage


??def __repr__(self):

????out = ""

????for report in self.reports:

??????source, gcov_info = report

??????out += source + "\n"

??????out += gcov_info

??????out += '#' * 60 + '\n'

????return out



class ProgramCoverageRunner(ProgramRunner):


??def __init__(self, program: str, sources_path):

????self.program = program

????self.sources_path = sources_path

????basename = "input.txt"

????tmpdir = tempfile.mkdtemp()

????self.input_file = os.path.join(tmpdir, basename)


??def run_process(self, inp) -> subprocess.CompletedProcess:

????print(inp)

????with open(self.input_file, 'w') as f:

??????f.write(inp + '\n')

????result = subprocess.run(

??????[self.program, self.input_file],

??????stdin=subprocess.PIPE,

??????stdout=subprocess.PIPE,

??????stderr=subprocess.PIPE,

??????universal_newlines=True

????)


????cov = ProgramCoverage(self.sources_path)

????cov.trace()

????self._coverage = cov.coverage()

????return result


??def coverage(self):

????return self._coverage

The Fuzzing Book 之 樣本突變Fuzzing(二)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
涞水县| 阳山县| 古浪县| 镇巴县| 闸北区| 华容县| 华蓥市| 普安县| 营山县| 香格里拉县| 衡山县| 封开县| 保靖县| 石门县| 彭州市| 平江县| 绥阳县| 黄冈市| 遂昌县| 阿拉善左旗| 榆林市| 海口市| 梁山县| 巴彦淖尔市| 邯郸市| 嘉黎县| 项城市| 呼伦贝尔市| 柳河县| 沙田区| 渝北区| 虹口区| 稷山县| 什邡市| 海伦市| 若羌县| 扶沟县| 苏尼特右旗| 岳池县| 峡江县| 西安市|