SYMBOL INDEX (2014 symbols across 145 files) FILE: rvzr/analyser.py class Analyser (line 33) | class Analyser(ABC): method filter_violations (line 37) | def filter_violations(self, method htraces_are_equivalent (line 55) | def htraces_are_equivalent(self, htrace1: HTrace, htrace2: HTrace) -> ... class EquivalenceAnalyserCommon (line 67) | class EquivalenceAnalyserCommon(Analyser): method filter_violations (line 85) | def filter_violations(self, class MergedBitmapAnalyser (line 152) | class MergedBitmapAnalyser(EquivalenceAnalyserCommon): method __init__ (line 162) | def __init__(self) -> None: method htraces_are_equivalent (line 167) | def htraces_are_equivalent(self, htrace1: HTrace, htrace2: HTrace) -> ... class SetAnalyser (line 202) | class SetAnalyser(EquivalenceAnalyserCommon): method htraces_are_equivalent (line 209) | def htraces_are_equivalent(self, htrace1: HTrace, htrace2: HTrace) -> ... class MWUAnalyser (line 226) | class MWUAnalyser(EquivalenceAnalyserCommon): method __init__ (line 233) | def __init__(self) -> None: method htraces_are_equivalent (line 244) | def htraces_are_equivalent(self, htrace1: HTrace, htrace2: HTrace) -> ... class ChiSquaredAnalyser (line 250) | class ChiSquaredAnalyser(EquivalenceAnalyserCommon): method __init__ (line 255) | def __init__(self) -> None: method homogeneity_test (line 263) | def homogeneity_test(self, x: IntArrayLike, y: IntArrayLike) -> float: method htraces_are_equivalent (line 277) | def htraces_are_equivalent(self, htrace1: HTrace, htrace2: HTrace) -> ... FILE: rvzr/arch/arm64/asm_parser.py class _ARM646LineParser (line 27) | class _ARM646LineParser(AsmLineParser): method __init__ (line 32) | def __init__(self, isa_spec: InstructionSet, target_desc: ARM64TargetD... method _tokenize (line 42) | def _tokenize(self, line: str) -> List[str]: method _get_instruction_name (line 79) | def _get_instruction_name(self, line: str, tokens: List[str]) -> str: method _get_instruction_operands (line 82) | def _get_instruction_operands(self, _: str, __: str, tokens: List[str]... method _get_initial_candidate_specs (line 86) | def _get_initial_candidate_specs(self, _: str, name: str) -> List[Inst... method _check_if_spec_matches (line 90) | def _check_if_spec_matches(self, spec: InstructionSpec, operands_raw: ... class ARM64AsmParser (line 146) | class ARM64AsmParser(AsmParser): method __init__ (line 149) | def __init__(self, isa_spec: InstructionSet, target_desc: TargetDesc) ... FILE: rvzr/arch/arm64/executor.py class ARM64Executor (line 13) | class ARM64Executor(Executor): method __init__ (line 16) | def __init__(self, enable_mismatch_check_mode: bool = False): method _set_vendor_specific_features (line 24) | def _set_vendor_specific_features(self) -> None: FILE: rvzr/arch/arm64/fuzzer.py class ARM64Fuzzer (line 34) | class ARM64Fuzzer(Fuzzer): method _filter (line 47) | def _filter(self, test_case: TestCaseProgram, inputs: List[InputData])... method _observation_filter (line 76) | def _observation_filter(self, test_case: TestCaseProgram, inputs: List... class ARM64ArchitecturalFuzzer (line 116) | class ARM64ArchitecturalFuzzer(ArchitecturalFuzzer): class ARM64ArchDiffFuzzer (line 123) | class ARM64ArchDiffFuzzer(ArchDiffFuzzer): method _create_fenced_test_case (line 129) | def _create_fenced_test_case(original_asm: str, fenced_asm: str, asm_p... function _quick_and_dirty_mode (line 139) | def _quick_and_dirty_mode(executor: Executor) -> Generator[None, None, N... function _create_fenced_test_case (line 150) | def _create_fenced_test_case(original_asm: str, fenced_asm: str, asm_par... FILE: rvzr/arch/arm64/generator.py class _ARM64Printer (line 32) | class _ARM64Printer(Printer): method __init__ (line 34) | def __init__(self, target_desc: ARM64TargetDesc) -> None: method _instruction_to_str (line 42) | def _instruction_to_str(self, inst: Instruction) -> str: method _operand_to_str (line 65) | def _operand_to_str(self, op: Operand) -> str: method _macro_to_str (line 75) | def _macro_to_str(self, inst: Instruction) -> str: method _is_digit_extended (line 82) | def _is_digit_extended(s: str) -> bool: class _ARM64SandboxPass (line 109) | class _ARM64SandboxPass(Pass): method __init__ (line 125) | def __init__(self, target_desc: TargetDesc) -> None: method run_on_test_case (line 134) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _sandbox_memory_access (line 156) | def _sandbox_memory_access(self, node: InstructionNode, parent: BasicB... method requires_sandbox (line 194) | def requires_sandbox(inst: InstructionSpec) -> bool: class _ARM64PatchUndefinedLoadsPass (line 201) | class _ARM64PatchUndefinedLoadsPass(Pass): method __init__ (line 203) | def __init__(self, target_desc: TargetDesc) -> None: method run_on_test_case (line 207) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _is_post_index (line 231) | def _is_post_index(self, inst: Instruction) -> bool: class ARM64Generator (line 250) | class ARM64Generator(CodeGenerator): method __init__ (line 253) | def __init__(self, seed: int, instruction_set: InstructionSet, target_... FILE: rvzr/arch/arm64/get_spec.py class Downloader (line 14) | class Downloader: method __init__ (line 17) | def __init__(self, extensions: List[str], out_file: str) -> None: method run (line 24) | def run(self) -> None: FILE: rvzr/arch/arm64/target_desc.py class ARM64TargetDesc (line 15) | class ARM64TargetDesc(TargetDesc): method __init__ (line 118) | def __init__(self) -> None: method is_unconditional_branch (line 129) | def is_unconditional_branch(inst: Instruction) -> bool: method is_call (line 133) | def is_call(inst: Instruction) -> bool: method _build_cpu_desc (line 136) | def _build_cpu_desc(self) -> CPUDesc: class ARM64UnicornTargetDesc (line 157) | class ARM64UnicornTargetDesc(UnicornTargetDesc): # pylint: disable=too-... FILE: rvzr/arch/x86/asm_parser.py class _X86IntelLineParser (line 89) | class _X86IntelLineParser(AsmLineParser): method __init__ (line 92) | def __init__(self, isa_spec: InstructionSet, target_desc: TargetDesc) ... method _tokenize (line 98) | def _tokenize(self, line: str) -> List[str]: method _get_instruction_name (line 101) | def _get_instruction_name(self, line: str, _: List[str]) -> str: method _get_instruction_operands (line 112) | def _get_instruction_operands(self, line: str, name: str, tokens: List... method _get_initial_candidate_specs (line 120) | def _get_initial_candidate_specs(self, line: str, _: str) -> List[Inst... method _check_if_spec_matches (line 137) | def _check_if_spec_matches(self, spec: InstructionSpec, operands_raw: ... class X86AsmParser (line 190) | class X86AsmParser(AsmParser): method __init__ (line 193) | def __init__(self, isa_spec: InstructionSet, target_desc: TargetDesc) ... FILE: rvzr/arch/x86/executor.py class X86Executor (line 38) | class X86Executor(Executor): method __init__ (line 41) | def __init__(self, enable_mismatch_check_mode: bool = False): method _set_vendor_specific_features (line 45) | def _set_vendor_specific_features(self) -> None: method _identify_handled_faults (line 54) | def _identify_handled_faults(self) -> int: class X86IntelExecutor (line 62) | class X86IntelExecutor(X86Executor): method __init__ (line 65) | def __init__(self, enable_mismatch_check_mode: bool = False): class X86AMDExecutor (line 74) | class X86AMDExecutor(X86Executor): method __init__ (line 77) | def __init__(self, enable_mismatch_check_mode: bool = False): FILE: rvzr/arch/x86/fuzzer.py class X86Fuzzer (line 37) | class X86Fuzzer(Fuzzer): method start (line 50) | def start(self, num_test_cases: int, num_inputs: int, timeout: int, no... method _filter (line 57) | def _filter(self, test_case: TestCaseProgram, inputs: List[InputData])... method _speculation_filter (line 90) | def _speculation_filter(htraces: List[HTrace]) -> bool: method _observation_filter (line 110) | def _observation_filter(self, test_case: TestCaseProgram, inputs: List... method _adjust_config (line 146) | def _adjust_config(self, existing_test_case: str) -> None: class X86ArchitecturalFuzzer (line 154) | class X86ArchitecturalFuzzer(ArchitecturalFuzzer): method _adjust_config (line 161) | def _adjust_config(self, existing_test_case: str) -> None: method start (line 165) | def start(self, num_test_cases: int, num_inputs: int, timeout: int, no... class X86ArchDiffFuzzer (line 171) | class X86ArchDiffFuzzer(ArchDiffFuzzer): method _adjust_config (line 181) | def _adjust_config(self, existing_test_case: str) -> None: method start (line 185) | def start(self, num_test_cases: int, num_inputs: int, timeout: int, no... method _create_fenced_test_case (line 191) | def _create_fenced_test_case(original_asm: str, fenced_asm: str, asm_p... function _update_instruction_list (line 200) | def _update_instruction_list() -> None: function _check_instruction_list (line 214) | def _check_instruction_list(instruction_set: InstructionSet) -> None: function _quick_and_dirty_mode (line 239) | def _quick_and_dirty_mode(executor: Executor) -> Generator[None, None, N... function _create_fenced_test_case (line 250) | def _create_fenced_test_case(original_asm: str, fenced_asm: str, asm_par... FILE: rvzr/arch/x86/generator.py class _FaultFilter (line 40) | class _FaultFilter: method __init__ (line 43) | def __init__(self) -> None: class _X86Printer (line 53) | class _X86Printer(Printer): method __init__ (line 56) | def __init__(self, target_desc: X86TargetDesc) -> None: method _instruction_to_str (line 64) | def _instruction_to_str(self, inst: Instruction) -> str: method _operand_to_str (line 77) | def _operand_to_str(self, op: Operand) -> str: method _macro_to_str (line 84) | def _macro_to_str(self, inst: Instruction) -> str: class _X86NonCanonicalAddressPass (line 94) | class _X86NonCanonicalAddressPass(Pass): method __init__ (line 101) | def __init__(self, target_desc: X86TargetDesc) -> None: method run_on_test_case (line 105) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _instrument (line 130) | def _instrument(self, node: InstructionNode, parent: BasicBlock) -> None: method _find_mask_register (line 183) | def _find_mask_register(self, src_operands: List[RegisterOp]) -> str: method _find_offset_register (line 195) | def _find_offset_register(self, inst: Instruction) -> str: class _X86U2KAccessPass (line 208) | class _X86U2KAccessPass(Pass): method run_on_test_case (line 224) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _instrument (line 264) | def _instrument(self, node: InstructionNode, _: BasicBlock, owner_id: ... class _X86SandboxPass (line 312) | class _X86SandboxPass(Pass): method __init__ (line 326) | def __init__(self, target_desc: TargetDesc, faults: _FaultFilter) -> N... method run_on_test_case (line 336) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _sandbox_memory_access (line 378) | def _sandbox_memory_access(self, node: InstructionNode, parent: BasicB... method _sandbox_division (line 444) | def _sandbox_division(self, node: InstructionNode, parent: BasicBlock)... method _sandbox_bit_test (line 611) | def _sandbox_bit_test(self, node: InstructionNode, parent: BasicBlock)... method _sandbox_repeated_instruction (line 649) | def _sandbox_repeated_instruction(self, node: InstructionNode, parent:... method _sandbox_corrupted_cf (line 661) | def _sandbox_corrupted_cf(self, node: InstructionNode, parent: BasicBl... method _sandbox_enclu (line 668) | def _sandbox_enclu(self, node: InstructionNode, parent: BasicBlock) ->... method requires_sandbox (line 684) | def requires_sandbox(inst: InstructionSpec) -> bool: class _X86PatchUndefinedFlagsPass (line 697) | class _X86PatchUndefinedFlagsPass(Pass): method __init__ (line 717) | def __init__(self, instruction_set: InstructionSet, generator: CodeGen... method run_on_test_case (line 745) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _patch_flags_in_bb (line 749) | def _patch_flags_in_bb(self, bb: BasicBlock) -> None: method _find_flags_patch (line 811) | def _find_flags_patch(self, undef_flags: List[str], class _X86PatchUndefinedResultPass (line 850) | class _X86PatchUndefinedResultPass(Pass): method run_on_test_case (line 856) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _patch_bit_scan (line 870) | def _patch_bit_scan(node: InstructionNode, parent: BasicBlock) -> None: class _X86PatchOpcodesPass (line 897) | class _X86PatchOpcodesPass(Pass): method run_on_test_case (line 935) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: method _instrument (line 950) | def _instrument(self, node: InstructionNode, parent: BasicBlock) -> None: class X86Generator (line 962) | class X86Generator(CodeGenerator): method __init__ (line 967) | def __init__(self, seed: int, instruction_set: InstructionSet, target_... FILE: rvzr/arch/x86/get_spec.py class _XMLOperandSpec (line 182) | class _XMLOperandSpec: method to_json (line 196) | def to_json(self) -> str: class _XMLInstructionSpec (line 205) | class _XMLInstructionSpec: method __init__ (line 213) | def __init__(self) -> None: method __str__ (line 217) | def __str__(self) -> str: method to_json (line 221) | def to_json(self) -> str: class _ParseFailed (line 242) | class _ParseFailed(Exception): class XMLSpecParser (line 246) | class XMLSpecParser: method __init__ (line 253) | def __init__(self, extensions: List[str]) -> None: method __len__ (line 257) | def __len__(self) -> int: method parse_file (line 260) | def parse_file(self, filename: str) -> None: method save_as_json (line 281) | def save_as_json(self, filename: str) -> None: method _parse_node (line 288) | def _parse_node(self, node: ET.Element) -> Optional[_XMLInstructionSpec]: method _node_is_not_supported (line 350) | def _node_is_not_supported(self, node: ET.Element) -> bool: method _parse_reg_operand (line 355) | def _parse_reg_operand(self, op: ET.Element) -> _XMLOperandSpec: method _parse_mem_operand (line 377) | def _parse_mem_operand(op: ET.Element) -> _XMLOperandSpec: method _parse_agen_operand (line 400) | def _parse_agen_operand(_: ET.Element) -> _XMLOperandSpec: method _parse_imm_operand (line 410) | def _parse_imm_operand(op: ET.Element) -> _XMLOperandSpec: method _parse_label_operand (line 428) | def _parse_label_operand(_: ET.Element) -> _XMLOperandSpec: method _parse_flags_operand (line 438) | def _parse_flags_operand(op: ET.Element) -> _XMLOperandSpec: method add_missing (line 457) | def add_missing(self) -> None: # pylint: disable=too-many-statements method _check_extension_list (line 504) | def _check_extension_list(self) -> None: class Downloader (line 518) | class Downloader: method __init__ (line 521) | def __init__(self, extensions: List[str], out_file: str) -> None: method run (line 538) | def run(self) -> None: FILE: rvzr/arch/x86/target_desc.py class X86TargetDesc (line 16) | class X86TargetDesc(TargetDesc): method __init__ (line 251) | def __init__(self) -> None: method is_unconditional_branch (line 270) | def is_unconditional_branch(inst: Instruction) -> bool: method is_call (line 274) | def is_call(inst: Instruction) -> bool: method _build_cpu_desc (line 277) | def _build_cpu_desc(self) -> CPUDesc: class X86UnicornTargetDesc (line 300) | class X86UnicornTargetDesc(UnicornTargetDesc): # pylint: disable=too-fe... FILE: rvzr/asm_parser.py class AsmParserError (line 35) | class AsmParserError(Exception): method __init__ (line 38) | def __init__(self, line_num: int, message: str) -> None: function asm_parser_assert (line 43) | def asm_parser_assert(condition: bool, line_number: int, explanation: st... class _ASMLine (line 51) | class _ASMLine: method __init__ (line 54) | def __init__(self, str_: str, line_num: int) -> None: class _CodeMapBuilder (line 74) | class _CodeMapBuilder: method create_code_map (line 86) | def create_code_map(self, lines: List[_ASMLine]) -> _CodeMap: method _get_line_type (line 132) | def _get_line_type(self, line: _ASMLine) -> str: method _start_section (line 154) | def _start_section(self, line: _ASMLine) -> None: method _start_function (line 180) | def _start_function(self, line: _ASMLine) -> None: method _create_default_main_function (line 198) | def _create_default_main_function(self) -> None: method _start_basic_block (line 211) | def _start_basic_block(self, line: _ASMLine) -> None: method _add_instruction (line 237) | def _add_instruction(self, line: _ASMLine) -> None: method _macro_label_to_instr (line 247) | def _macro_label_to_instr(self, line: str, line_num: int) -> str: class _AsmPatcher (line 274) | class _AsmPatcher: method set_macro_placeholder (line 278) | def set_macro_placeholder(self, macro_placeholder_str: str) -> None: method patch_asm (line 288) | def patch_asm(self, asm_file: str, patched_asm_file: str) -> None: method _is_instruction (line 305) | def _is_instruction(self, line: str) -> bool: method _pre_clean (line 311) | def _pre_clean(self, asm_file: str, patched_asm_file: str) -> None: method _add_exit_section (line 318) | def _add_exit_section(self, patched_asm_file: str) -> None: method _add_default_main (line 333) | def _add_default_main(self, patched_asm_file: str) -> None: method _add_macro_placeholders (line 371) | def _add_macro_placeholders(self, patched_asm_file: str) -> None: method _add_default_measurements (line 391) | def _add_default_measurements(self, patched_asm_file: str) -> None: class AsmLineParser (line 439) | class AsmLineParser(ABC): method __init__ (line 450) | def __init__(self, isa_spec: InstructionSet, target_desc: TargetDesc) ... method _tokenize (line 458) | def _tokenize(self, line: str) -> List[str]: method _get_instruction_name (line 462) | def _get_instruction_name(self, line: str, tokens: List[str]) -> str: method _get_instruction_operands (line 466) | def _get_instruction_operands(self, line: str, name: str, tokens: List... method _get_initial_candidate_specs (line 470) | def _get_initial_candidate_specs(self, line: str, name: str) -> List[I... method _check_if_spec_matches (line 474) | def _check_if_spec_matches(self, spec: InstructionSpec, operands_raw: ... method _build_instruction_map (line 480) | def _build_instruction_map(isa_spec: InstructionSet) -> Dict[str, List... method parse_line (line 501) | def parse_line(self, line: str, line_num: int) -> Instruction: method _find_matching_spec (line 528) | def _find_matching_spec(self, line: str, name: str, operands_raw: List... method _create_instruction (line 554) | def _create_instruction(self, spec: InstructionSpec, operands_raw: Lis... class AsmParser (line 602) | class AsmParser(ABC): method __init__ (line 614) | def __init__(self, isa_spec: InstructionSet, target_desc: TargetDesc) ... method parse_file (line 621) | def parse_file(self, method _patch_asm (line 678) | def _patch_asm(self, asm_file: str, patched_asm_file: str) -> None: method _update_lines_after_patch (line 681) | def _update_lines_after_patch(self, patched_asm_file: str, method _get_clean_lines (line 708) | def _get_clean_lines(self, org_lines: List[_ASMLine]) -> List[_ASMLine]: method _validate_dirty_lines (line 733) | def _validate_dirty_lines(self, lines: List[_ASMLine]) -> None: method _parse_line (line 752) | def _parse_line(self, line: str, line_num: int) -> Instruction: method _fill_test_case_structure (line 757) | def _fill_test_case_structure(self, test_case: TestCaseProgram, code_m... method _connect_control_flow (line 791) | def _connect_control_flow(self, test_case: TestCaseProgram) -> None: method _handle_empty_test_case (line 826) | def _handle_empty_test_case(self, test_case: TestCaseProgram) -> None: method _check_test_case_correctness (line 839) | def _check_test_case_correctness(self, test_case: TestCaseProgram) -> ... method _check_landing_sites (line 845) | def _check_landing_sites(self, test_case: TestCaseProgram) -> None: method _check_fault_handler (line 887) | def _check_fault_handler(self, test_case: TestCaseProgram) -> None: method _check_set_data_permission (line 898) | def _check_set_data_permission(self, test_case: TestCaseProgram) -> None: FILE: rvzr/cli.py function _arg2bool (line 24) | def _arg2bool(arg: Any) -> bool: function _parse_args (line 34) | def _parse_args() -> Any: # pylint: disable=r0915 function main (line 373) | def main() -> int: # pylint: disable=r0911,r0912,r0915 # this function... FILE: rvzr/code_generator.py class Pass (line 37) | class Pass(ABC): method run_on_test_case (line 43) | def run_on_test_case(self, test_case: TestCaseProgram) -> None: class Printer (line 49) | class Printer(ABC): method __init__ (line 61) | def __init__(self, target_desc: TargetDesc) -> None: method print (line 64) | def print(self, test_case: TestCaseProgram) -> None: method _print_section (line 81) | def _print_section(self, sec: CodeSection, file_: TextIO) -> None: method _print_function (line 86) | def _print_function(self, func: Function, file_: TextIO) -> None: method _print_basic_block (line 93) | def _print_basic_block(self, bb: BasicBlock, file_: TextIO) -> None: method _instruction_to_str (line 101) | def _instruction_to_str(self, inst: Instruction) -> str: method _operand_to_str (line 105) | def _operand_to_str(self, op: AnyOperand) -> str: method _macro_to_str (line 109) | def _macro_to_str(self, inst: Instruction) -> str: class CodeGenerator (line 116) | class CodeGenerator(ABC): method __init__ (line 138) | def __init__(self, seed: int, instruction_set: InstructionSet, target_... method create_test_case (line 155) | def create_test_case(self, asm_file: str, disable_assembler: bool = Fa... method create_test_case_from_template (line 202) | def create_test_case_from_template(self, template_file: str) -> TestCa... method generate_actors_with_sections (line 246) | def generate_actors_with_sections(self, test_case: TestCaseProgram, method generate_instruction (line 268) | def generate_instruction(self, method _set_seed (line 285) | def _set_seed(self, seed: int) -> None: method _update_state (line 296) | def _update_state(self) -> None: method _add_required_symbols (line 302) | def _add_required_symbols(self, test_case: TestCaseProgram) -> None: method _expand_template (line 320) | def _expand_template(self, test_case: TestCaseProgram, actors_config: ... function assemble (line 362) | def assemble(test_case: TestCaseProgram) -> None: class _FunctionGenerator (line 410) | class _FunctionGenerator: method __init__ (line 416) | def __init__(self, target_desc: TargetDesc, isa_spec: InstructionSet) ... method generate_empty (line 420) | def generate_empty(self, label: str, parent: CodeSection) -> Function: method fill_function (line 478) | def fill_function(self, func: Function) -> None: method _add_terminators_in_function (line 489) | def _add_terminators_in_function(self, func: Function) -> None: method _add_instructions_in_function (line 531) | def _add_instructions_in_function(self, func: Function) -> None: class _InstructionGenerator (line 548) | class _InstructionGenerator: method __init__ (line 555) | def __init__(self, target_desc: TargetDesc) -> None: method generate (line 558) | def generate(self, spec: InstructionSpec, is_instrumentation: bool = F... method generate_from_random_spec (line 581) | def generate_from_random_spec(self, class _OperandGenerator (line 614) | class _OperandGenerator: method __init__ (line 619) | def __init__(self, target_desc: TargetDesc) -> None: method generate (line 622) | def generate(self, spec: OperandSpec, parent: Instruction) -> AnyOperand: method _generate_reg_operand (line 637) | def _generate_reg_operand(self, spec: OperandSpec, _: Instruction) -> ... method _generate_mem_operand (line 642) | def _generate_mem_operand(self, spec: OperandSpec, _: Instruction) -> ... method _generate_imm_operand (line 649) | def _generate_imm_operand(self, spec: OperandSpec, inst: Instruction) ... method _generate_bitmask_operand (line 686) | def _generate_bitmask_operand(self, spec: OperandSpec, _: Instruction)... method _generate_label_operand (line 709) | def _generate_label_operand(self, _: OperandSpec, __: Instruction) -> ... method _generate_agen_operand (line 712) | def _generate_agen_operand(self, spec: OperandSpec, __: Instruction) -... method _generate_flags_operand (line 725) | def _generate_flags_operand(self, spec: OperandSpec, parent: Instructi... method _generate_cond_operand (line 763) | def _generate_cond_operand(self, _: OperandSpec, __: Instruction) -> C... FILE: rvzr/config.py class ActorConf (line 26) | class ActorConf(TypedDict): class IncludeLoader (line 49) | class IncludeLoader(yaml.SafeLoader): method __init__ (line 56) | def __init__(self, stream: TextIO, include_dir: str = "") -> None: method __del__ (line 63) | def __del__(self) -> None: method include (line 67) | def include(self, node: yaml.Node) -> Any: method construct_yaml_map (line 87) | def construct_yaml_map(self, node: yaml.MappingNode) -> Dict[Any, Any]: class ConfigException (line 104) | class ConfigException(SystemExit): method __init__ (line 106) | def __init__(self, message: str) -> None: function _get_architecture (line 110) | def _get_architecture() -> Architecture: function _get_cpu_vendor (line 120) | def _get_cpu_vendor() -> str: class Conf (line 135) | class Conf: method __init__ (line 372) | def __init__(self) -> None: method load (line 378) | def load(self, config_path: str, include_dir: str = "") -> None: method _load_from_dict (line 393) | def _load_from_dict(self, config_update: Dict[str, Any]) -> None: method safe_set (line 434) | def safe_set(self, name: str, value: Any, options_name: str = "") -> N... method _check_options (line 453) | def _check_options(self, name: str, value: Any) -> None: method _value_sanity_check (line 481) | def _value_sanity_check(self) -> None: method set_to_arch_defaults (line 490) | def set_to_arch_defaults(self) -> None: method update_handled_faults_with_generator_faults (line 529) | def update_handled_faults_with_generator_faults(self, new: List[str]) ... method set_actor_properties (line 539) | def set_actor_properties(self, new: List[Dict[str, List[Dict[ActorConf... method disable_generation (line 589) | def disable_generation(self) -> None: method is_generation_enabled (line 593) | def is_generation_enabled(self) -> bool: method get_actors_conf (line 597) | def get_actors_conf(self) -> ActorsConf: FILE: rvzr/data_generator.py class DataGenerator (line 24) | class DataGenerator: method __init__ (line 31) | def __init__(self, seed: int): method get_state (line 41) | def get_state(self) -> int: method _reset_boosting_state (line 48) | def _reset_boosting_state(self) -> None: method generate (line 52) | def generate(self, count: int, n_actors: int) -> List[InputData]: method generate_boosted (line 72) | def generate_boosted(self, inputs: List[InputData], taints: List[Input... method load (line 116) | def load(self, input_paths: List[str]) -> List[InputData]: method _generate_one (line 146) | def _generate_one(self, state: int, n_actors: int) -> Tuple[InputData,... FILE: rvzr/elf_parser.py class _ParsingError (line 25) | class _ParsingError(Exception): method __init__ (line 27) | def __init__(self, message: str): class _ELFData (line 35) | class _ELFData(TypedDict): class _SectionData (line 40) | class _SectionData(TypedDict): class _FunctionData (line 48) | class _FunctionData(TypedDict): class _SymtabParser (line 54) | class _SymtabParser: method parse (line 56) | def parse(self, obj_file: str) -> _ELFData: method _get_unsorted_data (line 67) | def _get_unsorted_data(self, obj_file: str) -> _ELFData: method _sort_elf_data (line 107) | def _sort_elf_data(self, elf_data: _ELFData) -> None: class _ObjdumpSectionDesc (line 137) | class _ObjdumpSectionDesc(NamedTuple): class _ObjdumpOutputParser (line 142) | class _ObjdumpOutputParser: method __init__ (line 144) | def __init__(self) -> None: method parse (line 149) | def parse(self, obj_file: str) -> _InstrAddrMap: method _parse_section_header (line 190) | def _parse_section_header(self, line: str) -> _ObjdumpSectionDesc: class ELFParser (line 210) | class ELFParser: method __init__ (line 220) | def __init__(self, target_desc: TargetDesc) -> None: method populate_elf_data (line 226) | def populate_elf_data(self, test_case_bin: TestCaseBinary, method _assign_bin_metadata (line 248) | def _assign_bin_metadata(self, obj_file: str, method _assign_section_metadata (line 310) | def _assign_section_metadata(section_data: _SectionData, section_obj: ... method _assign_function_metadata (line 315) | def _assign_function_metadata(func_data: _FunctionData, section_data: ... method _assign_instruction_metadata (line 325) | def _assign_instruction_metadata(self, inst: Instruction, instr_addr_m... method _assign_macro_metadata (line 353) | def _assign_macro_metadata(self, inst: Instruction, sections_data: Lis... method _validate_sections (line 431) | def _validate_sections(self, sections: List[CodeSection], method _validate_macros (line 451) | def _validate_macros(self, test_case: TestCaseProgram, symbol_table: S... FILE: rvzr/executor.py function km_write (line 38) | def km_write(value: str, path: str) -> None: function _is_smt_enabled (line 46) | def _is_smt_enabled() -> bool: function _can_set_reserved (line 65) | def _can_set_reserved() -> bool: function _is_kernel_module_installed (line 99) | def _is_kernel_module_installed() -> bool: function _configure_kernel_module (line 103) | def _configure_kernel_module() -> None: function _read_trace (line 109) | def _read_trace(n_reps: int, function _rewind_km_output_to_end (line 195) | def _rewind_km_output_to_end() -> None: class Executor (line 209) | class Executor(ABC): method __init__ (line 231) | def __init__(self, enable_mismatch_check_mode: bool = False, skip_setu... method load_test_case (line 258) | def load_test_case(self, test_case: TestCaseProgram) -> None: method trace_test_case (line 282) | def trace_test_case(self, inputs: List[InputData], n_reps: int) -> Lis... method _identify_trace_type (line 326) | def _identify_trace_type(self) -> HTraceType: method _raw_readings_to_traces (line 334) | def _raw_readings_to_traces(self, all_readings: ReadingsArray, n_input... method read_base_addresses (line 360) | def read_base_addresses(self) -> BaseAddrTuple: method set_ignore_list (line 377) | def set_ignore_list(self, ignore_list: List[int]) -> None: method extend_ignore_list (line 387) | def extend_ignore_list(self, ignore_list: List[int]) -> None: method set_quick_and_dirty (line 397) | def set_quick_and_dirty(self, state: bool) -> None: method _set_vendor_specific_features (line 409) | def _set_vendor_specific_features(self) -> None: FILE: rvzr/executor_km/arm64/entry_exit_points.h function prologue (line 23) | static inline void prologue(void) function epilogue (line 84) | static inline void epilogue(void) function epilogue_dbg_gpr (line 125) | static inline void epilogue_dbg_gpr(void) function main_segment_template (line 167) | static void main_segment_template(void) function main_segment_template_dbg_gpr (line 189) | static void main_segment_template_dbg_gpr(void) FILE: rvzr/executor_km/arm64/fault_handler.c type opcode_t (line 17) | typedef uint32_t opcode_t; type vector_table_entry_t (line 19) | typedef struct { type vector_table_t (line 23) | typedef struct { function vector_table_t (line 39) | static inline vector_table_t *vbar_el1_read(void) function vbar_el1_write (line 46) | static inline void vbar_el1_write(vector_table_t *vbar_el1) function set_outer_fault_handlers (line 51) | void set_outer_fault_handlers(void) function unset_outer_fault_handlers (line 60) | void unset_outer_fault_handlers(void) function set_inner_fault_handlers (line 66) | void set_inner_fault_handlers(void) function unset_inner_fault_handlers (line 72) | void unset_inner_fault_handlers(void) { vbar_el1_write(&outer_vector_tab... function init_fault_handler (line 75) | int init_fault_handler(void) function free_fault_handler (line 82) | void free_fault_handler(void) {} FILE: rvzr/executor_km/arm64/macros.c function movz (line 47) | static inline uint32_t movz(uint8_t rd, uint16_t imm16, uint8_t shift) function movk (line 56) | static inline uint32_t movk(uint8_t rd, uint16_t imm16, uint8_t shift) function mov_to_sp (line 65) | static inline uint32_t mov_to_sp(uint8_t rd) { return 0x9100001f | (rd <... function b_imm (line 67) | static inline uint32_t b_imm(uint32_t offset) function mov_reg (line 80) | static inline uint32_t mov_reg(uint8_t rd, uint8_t rn) function add_reg (line 89) | static inline uint32_t add_reg(uint8_t rd, uint8_t rn, uint8_t rm) function str_reg (line 99) | static inline uint32_t str_reg(uint8_t rt, uint8_t rn) function ldr_reg (line 108) | static inline uint32_t ldr_reg(uint8_t rt, uint8_t rn) function mov_uint64_to_reg (line 126) | static inline uint64_t mov_uint64_to_reg(uint8_t rd, uint64_t value, uin... function get_function_addr (line 148) | static uint64_t get_function_addr(int section_id, int function_id) function update_memory_base_reg (line 167) | static uint64_t update_memory_base_reg(int section_id, uint8_t *dest, ui... function update_mem_base_and_sp (line 186) | static uint64_t update_mem_base_and_sp(int section_id, uint8_t *dest, ui... function update_util_base_reg (line 209) | static uint64_t update_util_base_reg(int section_id, uint8_t *dest, uint... function body_macro_prime (line 235) | static void __attribute__((noipa)) body_macro_prime(void) function body_macro_fast_prime (line 251) | static void __attribute__((noipa)) body_macro_fast_prime(void) function body_macro_probe (line 267) | static void __attribute__((noipa)) body_macro_probe(void) function body_macro_flush (line 295) | static void __attribute__((noipa)) body_macro_flush(void) function body_macro_reload (line 310) | static void __attribute__((noipa)) body_macro_reload(void) function start_macro_fault_handler (line 337) | static inline size_t start_macro_fault_handler(macro_args_t args, uint8_... function start_macro_switch (line 356) | static inline size_t start_macro_switch(macro_args_t args, uint8_t *dest) FILE: rvzr/executor_km/arm64/page_tables_guest.c function map_sandbox_to_guest_memory (line 23) | int map_sandbox_to_guest_memory(void) function set_faulty_page_guest_permissions (line 32) | void set_faulty_page_guest_permissions(void) { return; } function restore_faulty_page_guest_permissions (line 34) | void restore_faulty_page_guest_permissions(void) { return; } function set_faulty_page_ept_permissions (line 38) | void set_faulty_page_ept_permissions(void) { return; } function restore_faulty_page_ept_permissions (line 40) | void restore_faulty_page_ept_permissions(void) { return; } function dbg_dump_guest_page_tables (line 49) | int dbg_dump_guest_page_tables(int actor_id) { return 0; } function dbg_dump_ept (line 51) | int dbg_dump_ept(int actor_id) { return 0; } function allocate_guest_page_tables (line 54) | int allocate_guest_page_tables(void) { return 0; } function free_guest_page_tables (line 56) | void free_guest_page_tables(void) {} FILE: rvzr/executor_km/arm64/perf_counters.c function get_current_exception_level (line 48) | static inline int get_current_exception_level(void) function pmu_enable_el2 (line 59) | static inline int pmu_enable_el2(void) function pmu_enable (line 72) | static inline int pmu_enable(void) function pmu_reset (line 83) | static inline int pmu_reset(void) function enable_all_counters (line 94) | static inline int enable_all_counters(void) function disable_filtering (line 112) | static inline int disable_filtering(void) function configure_events (line 125) | static inline int configure_events(void) function pfc_configure (line 147) | int pfc_configure(void) function init_perf_counters (line 182) | int init_perf_counters(void) { return 0; } function free_perf_counters (line 183) | void free_perf_counters(void) {} FILE: rvzr/executor_km/arm64/special_registers.c function store_special_registers (line 15) | static int store_special_registers(void) function set_special_registers (line 27) | int set_special_registers(void) function restore_special_registers (line 34) | void restore_special_registers(void) function init_special_register_manager (line 52) | int init_special_register_manager(void) function free_special_register_manager (line 58) | void free_special_register_manager(void) { SAFE_FREE(orig_special_regist... FILE: rvzr/executor_km/code_loader.c function load_sandbox_code (line 39) | int load_sandbox_code(void) function load_section (line 57) | static int load_section(uint64_t section_id) function load_section_main (line 68) | static int load_section_main(void) function tc_symbol_entry_t (line 162) | static tc_symbol_entry_t *get_section_macros_start(uint64_t section_id) function expand_section (line 181) | static int expand_section(uint64_t section_id, uint8_t *dest, uint8_t *m... function init_code_loader (line 245) | int init_code_loader(void) function free_code_loader (line 251) | void free_code_loader(void) {} FILE: rvzr/executor_km/data_loader.c function load_sandbox_data (line 23) | int load_sandbox_data(int input_id) function init_data_loader (line 101) | int init_data_loader(void) { return 0; } function free_data_loader (line 103) | void free_data_loader(void) {} FILE: rvzr/executor_km/include/actor.h type actor_id_t (line 13) | typedef uint64_t actor_id_t; type actor_mode_t (line 14) | typedef uint64_t actor_mode_t; type actor_pl_t (line 15) | typedef uint64_t actor_pl_t; type actor_metadata_t (line 27) | typedef struct { FILE: rvzr/executor_km/include/fault_handler.h type idt_data (line 14) | struct idt_data { type desc_ptr (line 40) | struct desc_ptr FILE: rvzr/executor_km/include/hardware_desc.h type cpuinfo_t (line 40) | typedef struct cpuinfo_x86 cpuinfo_t; type cpuinfo_t (line 42) | typedef struct { FILE: rvzr/executor_km/include/input_parser.h type input_fragment_size_t (line 13) | typedef uint64_t input_fragment_size_t; type input_fragment_reserved_field_t (line 14) | typedef uint64_t input_fragment_reserved_field_t; type input_fragment_metadata_entry_t (line 16) | typedef struct { type input_fragment_t (line 21) | typedef struct { type input_batch_t (line 27) | typedef struct { FILE: rvzr/executor_km/include/macro_expansion.h type macro_name_e (line 18) | typedef enum { type macro_subtype_e (line 40) | typedef enum { type macro_args_t (line 76) | typedef struct { type macro_descr_t (line 85) | typedef struct { FILE: rvzr/executor_km/include/main.h type measurement_mode_e (line 15) | typedef enum { FILE: rvzr/executor_km/include/measurement.h type measurement_status_t (line 19) | typedef struct measurement_status { type measurement_t (line 25) | typedef struct Measurement { FILE: rvzr/executor_km/include/page_tables_common.h type pml4e_t (line 55) | typedef struct { type pdpte_t (line 75) | typedef struct { type pdte_t (line 94) | typedef struct { type pte_t_ (line 113) | typedef struct { type eptp_t (line 138) | typedef struct { type epml4e_t (line 153) | typedef struct { type pml4e_t (line 169) | typedef pml4e_t epml4e_t; type epdpte_t (line 174) | typedef struct { type pdpte_t (line 191) | typedef pdpte_t epdpte_t; type epdte_t (line 195) | typedef struct { type pdte_t (line 212) | typedef pdte_t epdte_t; type epte_t_ (line 216) | typedef struct { type pte_t_ (line 241) | typedef pte_t_ epte_t_; function set_user_bit (line 244) | static inline void set_user_bit(pte_t_ *pte) { pte->user_supervisor = 1; } type l1_descr_t (line 258) | typedef struct { type l2_descr_t (line 274) | typedef struct { type l3_descr_t (line 287) | typedef struct { function set_user_bit (line 306) | static inline void set_user_bit(l3_descr_t *pte) type l3_descr_t (line 311) | typedef l3_descr_t pte_t_; FILE: rvzr/executor_km/include/page_tables_guest.h type actor_page_table_t (line 33) | typedef struct { type actor_ept_t (line 40) | typedef struct { type actor_gdt_t (line 47) | typedef struct { type guest_memory_t (line 52) | typedef struct { type hgpa_t (line 62) | typedef struct { type guest_memory_translations_t (line 70) | typedef struct { FILE: rvzr/executor_km/include/page_tables_host.h type sandbox_ptes_t (line 12) | typedef struct { type sandbox_pteps_t (line 18) | typedef struct { FILE: rvzr/executor_km/include/sandbox_manager.h type util_vars_t (line 22) | typedef struct { type util_t (line 38) | typedef struct { type actor_data_t (line 44) | typedef struct { type actor_code_t (line 56) | typedef struct { type sandbox_t (line 64) | typedef struct { FILE: rvzr/executor_km/include/shortcuts.h function vmalloc_to_phys (line 200) | static inline uint64_t vmalloc_to_phys(void *hva) function native_page_invalidate (line 209) | static inline void native_page_invalidate(uint64_t hva) FILE: rvzr/executor_km/include/special_registers.h type special_registers_t (line 16) | typedef struct { FILE: rvzr/executor_km/include/svm.h type vmcb_control_t (line 18) | typedef struct { type seg_t (line 61) | typedef struct { type vmcb_save_t (line 68) | typedef struct { type vmcb_t (line 127) | typedef struct { FILE: rvzr/executor_km/include/test_case_parser.h type section_size_t (line 17) | typedef uint64_t section_size_t; type section_metadata_reserved_t (line 18) | typedef uint64_t section_metadata_reserved_t; type section_id_t (line 19) | typedef uint64_t section_id_t; type symbol_offset_t (line 20) | typedef uint64_t symbol_offset_t; type symbol_id_t (line 21) | typedef uint64_t symbol_id_t; type symbol_args_t (line 22) | typedef uint64_t symbol_args_t; type tc_section_metadata_entry_t (line 24) | typedef struct { type tc_section_t (line 30) | typedef struct { type tc_symbol_entry_t (line 34) | typedef struct { type tc_features_t (line 41) | typedef struct { type test_case_t (line 47) | typedef struct { FILE: rvzr/executor_km/include/vmx.h type vmxon_region_t (line 47) | typedef struct { type vmcs_t (line 53) | typedef struct { FILE: rvzr/executor_km/input_parser.c function start_batch_input_parsing (line 31) | static int start_batch_input_parsing(const char *buf) function parse_input_buffer (line 90) | ssize_t parse_input_buffer(const char *buf, size_t count, bool *finished) function input_fragment_t (line 154) | input_fragment_t *get_input_fragment(uint64_t input_id, uint64_t actor_id) function input_fragment_t (line 173) | input_fragment_t *get_input_fragment_unsafe(uint64_t input_id, uint64_t ... function input_parsing_completed (line 180) | bool input_parsing_completed(void) { return !is_receiving_inputs; } function init_input_parser (line 183) | int init_input_parser(void) function free_input_parser (line 198) | void free_input_parser(void) FILE: rvzr/executor_km/macro_expansion.c function set_main_prologue_size (line 33) | void set_main_prologue_size(size_t size) { main_prologue_size = size; } function get_main_prologue_size (line 34) | size_t get_main_prologue_size(void) { return main_prologue_size; } function macro_descr_t (line 39) | static macro_descr_t *get_macro_subtype_from_id(uint64_t macro_id) function is_macro_start (line 173) | static inline bool is_macro_start(uint8_t *ptr) function is_macro_end (line 184) | static inline bool is_macro_end(uint8_t *ptr) function insert_relative_jmp_n_fence (line 197) | static inline uint64_t insert_relative_jmp_n_fence(uint8_t *dest, int32_... function inject_macro_configurable_part (line 252) | static uint64_t inject_macro_configurable_part(macro_descr_t *descr, uin... function inject_macro_static_part (line 273) | static uint64_t inject_macro_static_part(macro_descr_t *descr, uint8_t *... function expand_macro (line 305) | int expand_macro(tc_symbol_entry_t *macro, uint8_t *code_dest, uint8_t *... FILE: rvzr/executor_km/main.c type kprobe (line 58) | struct kprobe type mm_struct (line 69) | struct mm_struct type kobject (line 98) | struct kobject type kobject (line 115) | struct kobject type kobj_attribute (line 115) | struct kobj_attribute type kobj_attribute (line 116) | struct kobj_attribute type kobject (line 120) | struct kobject type kobj_attribute (line 120) | struct kobj_attribute type kobj_attribute (line 122) | struct kobj_attribute type file (line 124) | struct file type kobject (line 124) | struct kobject type bin_attribute (line 126) | struct bin_attribute type kobject (line 130) | struct kobject type kobj_attribute (line 130) | struct kobj_attribute type kobject (line 132) | struct kobject type kobj_attribute (line 132) | struct kobj_attribute type kobj_attribute (line 133) | struct kobj_attribute type kobject (line 137) | struct kobject type kobj_attribute (line 137) | struct kobj_attribute type kobject (line 138) | struct kobject type kobj_attribute (line 138) | struct kobj_attribute type kobj_attribute (line 140) | struct kobj_attribute type kobject (line 144) | struct kobject type kobj_attribute (line 144) | struct kobj_attribute type kobj_attribute (line 145) | struct kobj_attribute type kobject (line 150) | struct kobject type kobj_attribute (line 150) | struct kobj_attribute type kobj_attribute (line 151) | struct kobj_attribute type kobject (line 156) | struct kobject type kobj_attribute (line 156) | struct kobj_attribute type kobj_attribute (line 158) | struct kobj_attribute type kobject (line 163) | struct kobject type kobj_attribute (line 163) | struct kobj_attribute type kobj_attribute (line 165) | struct kobj_attribute type kobject (line 170) | struct kobject type kobj_attribute (line 170) | struct kobj_attribute type kobj_attribute (line 172) | struct kobj_attribute type kobject (line 176) | struct kobject type kobj_attribute (line 176) | struct kobj_attribute type kobj_attribute (line 178) | struct kobj_attribute type kobject (line 183) | struct kobject type kobj_attribute (line 183) | struct kobj_attribute type kobj_attribute (line 185) | struct kobj_attribute type kobject (line 190) | struct kobject type kobj_attribute (line 190) | struct kobj_attribute type kobj_attribute (line 192) | struct kobj_attribute type kobject (line 197) | struct kobject type kobj_attribute (line 197) | struct kobj_attribute type kobject (line 198) | struct kobject type kobj_attribute (line 198) | struct kobj_attribute type kobj_attribute (line 200) | struct kobj_attribute type kobject (line 205) | struct kobject type kobj_attribute (line 205) | struct kobj_attribute type kobj_attribute (line 207) | struct kobj_attribute type kobject (line 212) | struct kobject type kobj_attribute (line 212) | struct kobj_attribute type kobj_attribute (line 213) | struct kobj_attribute type kobject (line 215) | struct kobject type kobj_attribute (line 215) | struct kobj_attribute type kobj_attribute (line 217) | struct kobj_attribute type attribute (line 220) | struct attribute type bin_attribute (line 240) | struct bin_attribute function trace_show (line 249) | static ssize_t trace_show(struct kobject *kobj, struct kobj_attribute *a... function check_test_case_compat (line 291) | static int check_test_case_compat(void) function test_case_store (line 316) | static ssize_t test_case_store(struct kobject *kobj, struct kobj_attribu... function test_case_bin_read (line 344) | static ssize_t test_case_bin_read(struct file *file, struct kobject *kob... function inputs_store (line 359) | static ssize_t inputs_store(struct kobject *kobj, struct kobj_attribute ... function inputs_show (line 372) | static ssize_t inputs_show(struct kobject *kobj, struct kobj_attribute *... function warmups_show (line 378) | static ssize_t warmups_show(struct kobject *kobj, struct kobj_attribute ... function warmups_store (line 383) | static ssize_t warmups_store(struct kobject *kobj, struct kobj_attribute... function print_data_base_show (line 390) | static ssize_t print_data_base_show(struct kobject *kobj, struct kobj_at... function print_code_base_show (line 395) | static ssize_t print_code_base_show(struct kobject *kobj, struct kobj_at... function enable_ssbp_patch_store (line 400) | static ssize_t enable_ssbp_patch_store(struct kobject *kobj, struct kobj... function enable_prefetcher_store (line 409) | static ssize_t enable_prefetcher_store(struct kobject *kobj, struct kobj... function enable_pre_run_flush_store (line 418) | static ssize_t enable_pre_run_flush_store(struct kobject *kobj, struct k... function enable_hpa_gpa_collisions_store (line 427) | static ssize_t enable_hpa_gpa_collisions_store(struct kobject *kobj, str... function measurement_mode_store (line 436) | static ssize_t measurement_mode_store(struct kobject *kobj, struct kobj_... function enable_quick_and_dirty_mode (line 464) | static ssize_t enable_quick_and_dirty_mode(struct kobject *kobj, struct ... function enable_dbg_gpr_mode (line 498) | static ssize_t enable_dbg_gpr_mode(struct kobject *kobj, struct kobj_att... function handled_faults_show (line 507) | static ssize_t handled_faults_show(struct kobject *kobj, struct kobj_att... function handled_faults_store (line 512) | static ssize_t handled_faults_store(struct kobject *kobj, struct kobj_at... function dbg_dump_show (line 525) | static ssize_t dbg_dump_show(struct kobject *kobj, struct kobj_attribute... function dbg_guest_page_tables_show (line 550) | static ssize_t dbg_guest_page_tables_show(struct kobject *kobj, struct k... function _get_required_kernel_functions (line 572) | static inline void _get_required_kernel_functions(void) function cpuinfo_t (line 591) | static inline cpuinfo_t *get_cpuinfo(void) function check_cpu_compat (line 616) | static int check_cpu_compat(void) function executor_init (line 645) | static int __init executor_init(void) function executor_exit (line 725) | static void __exit executor_exit(void) FILE: rvzr/executor_km/measurement.c function uarch_flush (line 48) | static inline int uarch_flush(void) function check_test_case_entry (line 69) | static int check_test_case_entry(void) function check_measurement_status (line 87) | static int check_measurement_status(measurement_status_t *status) function pre_run (line 122) | static int pre_run(unsigned long *irq_flags) function post_run (line 155) | static inline void post_run(unsigned long *irq_flags) function set_execution_environment (line 176) | static int set_execution_environment(void) function recover_orig_state (line 212) | void recover_orig_state(void) function run_experiment (line 245) | int run_experiment(void) function trace_test_case (line 324) | int trace_test_case(void) function alloc_measurements (line 348) | int alloc_measurements(void) function init_measurements (line 361) | int init_measurements(void) function free_measurements (line 369) | void free_measurements(void) { SAFE_VFREE(measurements); } FILE: rvzr/executor_km/page_tables_host.c type mm_struct (line 23) | struct mm_struct function pte_t (line 25) | pte_t *get_pte(uint64_t hva) function cache_host_pteps (line 82) | int cache_host_pteps(void) function store_orig_host_permissions (line 129) | int store_orig_host_permissions(void) function restore_pte (line 172) | static void restore_pte(pte_t_ *ptep, pte_t_ old_pte, uint64_t vaddr) function restore_orig_host_permissions (line 186) | int restore_orig_host_permissions(void) function set_user_pages (line 220) | int set_user_pages(void) function set_faulty_page_host_permissions (line 259) | void set_faulty_page_host_permissions(void) function restore_faulty_page_host_permissions (line 283) | void restore_faulty_page_host_permissions(void) function init_page_table_manager (line 293) | int init_page_table_manager(void) function free_page_table_manager (line 309) | void free_page_table_manager(void) FILE: rvzr/executor_km/sandbox_manager.c type page (line 24) | struct page function safe_free_util_data (line 32) | static void safe_free_util_data(void) function safe_free_code (line 48) | static void safe_free_code(void) function init_sandbox_pointers (line 59) | static int init_sandbox_pointers(void) function allocate_util_and_data (line 85) | static int allocate_util_and_data(size_t n_actors) function allocate_code (line 139) | static int allocate_code(size_t n_actors) function reset_code_area (line 156) | void reset_code_area(void) function allocate_sandbox (line 174) | int allocate_sandbox(void) function get_sandbox_size_pages (line 213) | int get_sandbox_size_pages(void) function set_sandbox_page_tables (line 226) | int set_sandbox_page_tables(void) function restore_orig_sandbox_page_tables (line 238) | void restore_orig_sandbox_page_tables(void) { restore_orig_host_permissi... function set_faulty_page_permissions (line 242) | void set_faulty_page_permissions(void) function restore_faulty_page_permissions (line 250) | void restore_faulty_page_permissions(void) function init_sandbox_manager (line 258) | int init_sandbox_manager(void) function free_sandbox_manager (line 294) | void free_sandbox_manager(void) FILE: rvzr/executor_km/test_case_parser.c function __batch_tc_parsing_start (line 36) | static int __batch_tc_parsing_start(const char *buf) function __batch_tc_parsing_end (line 110) | static int __batch_tc_parsing_end(void) function parse_test_case_buffer (line 189) | ssize_t parse_test_case_buffer(const char *buf, size_t count, bool *fini... function tc_parsing_completed (line 305) | bool tc_parsing_completed(void) { return !_is_receiving_test_case; } function new_test_case (line 312) | static int new_test_case(test_case_t **test_case_p) function init_test_case_parser (line 334) | int init_test_case_parser(void) function free_test_case_parser (line 354) | void free_test_case_parser(void) FILE: rvzr/executor_km/x86/entry_exit_points.h function prologue (line 29) | static inline void prologue(void) function epilogue (line 81) | static inline void epilogue(void) function epilogue_dbg_gpr (line 120) | static inline void epilogue_dbg_gpr(void) function main_segment_template (line 158) | static void main_segment_template(void) function main_segment_template_dbg_gpr (line 181) | static void main_segment_template_dbg_gpr(void) FILE: rvzr/executor_km/x86/idt.c type desc_ptr (line 21) | struct desc_ptr type desc_ptr (line 26) | struct desc_ptr type desc_ptr (line 27) | struct desc_ptr function native_sidt (line 63) | inline static void native_sidt(void *dtr) function native_lidt (line 68) | inline static void native_lidt(void *dtr) function set_intr_gate_default (line 73) | static void set_intr_gate_default(gate_desc *idt, int interrupt_id, void... function idt_set_custom_handlers (line 86) | static void idt_set_custom_handlers(gate_desc *idt, struct desc_ptr *idt... function set_outer_fault_handlers (line 121) | void set_outer_fault_handlers(void) function unset_outer_fault_handlers (line 128) | void unset_outer_fault_handlers(void) function set_inner_fault_handlers (line 137) | void set_inner_fault_handlers(void) function unset_inner_fault_handlers (line 143) | void unset_inner_fault_handlers(void) function init_fault_handler (line 153) | int init_fault_handler(void) function free_fault_handler (line 163) | void free_fault_handler(void) FILE: rvzr/executor_km/x86/macros.c function movabs (line 56) | static inline void movabs(uint8_t *dest, size_t *cursor_, uint8_t reg_id... function get_function_addr (line 80) | static uint64_t get_function_addr(uint64_t section_id, uint64_t function... function update_r14 (line 105) | static uint64_t update_r14(uint64_t section_id, uint8_t *dest, uint64_t ... function update_mem_base_and_sp (line 130) | static uint64_t update_mem_base_and_sp(uint64_t section_id, uint8_t *des... function update_r15 (line 156) | static uint64_t update_r15(uint64_t section_id, uint8_t *dest, uint64_t ... function body_macro_prime (line 188) | static void __attribute__((noipa)) body_macro_prime(void) function body_macro_fast_prime (line 203) | static void __attribute__((noipa)) body_macro_fast_prime(void) function body_macro_partial_prime (line 218) | static void __attribute__((noipa)) body_macro_partial_prime(void) function body_macro_fast_partial_prime (line 233) | static void __attribute__((noipa)) body_macro_fast_partial_prime(void) function body_macro_probe (line 248) | static void __attribute__((noipa)) body_macro_probe(void) function body_macro_flush (line 272) | static void __attribute__((noipa)) body_macro_flush(void) function body_macro_reload (line 287) | static void __attribute__((noipa)) body_macro_reload(void) function body_macro_tsc_start (line 310) | static void __attribute__((noipa)) body_macro_tsc_start(void) function body_macro_tsc_end (line 329) | static void __attribute__((noipa)) body_macro_tsc_end(void) function start_macro_fault_handler (line 351) | static inline size_t start_macro_fault_handler(macro_args_t args, uint8_... function start_macro_fault_handler_with_measurement (line 385) | static inline size_t start_macro_fault_handler_with_measurement(macro_ar... function start_macro_switch (line 394) | static inline size_t start_macro_switch(macro_args_t args, uint8_t *dest) function start_macro_set_k2u_target (line 412) | static inline size_t start_macro_set_k2u_target(macro_args_t args, uint8... function start_macro_switch_k2u (line 425) | static inline size_t start_macro_switch_k2u(macro_args_t /*args*/, uint8... function body_macro_switch_k2u (line 427) | static void __attribute__((noipa)) body_macro_switch_k2u(void) function start_macro_set_u2k_target (line 444) | static inline size_t start_macro_set_u2k_target(macro_args_t args, uint8... function body_macro_switch_u2k (line 499) | static void __attribute__((noipa)) body_macro_switch_u2k(void) function start_macro_set_h2g_target (line 507) | static inline size_t start_macro_set_h2g_target(macro_args_t args, uint8... function body_macro_set_h2g_target (line 549) | static void __attribute__((noipa)) body_macro_set_h2g_target(void) function start_macro_switch_h2g (line 566) | static inline size_t start_macro_switch_h2g(macro_args_t args, uint8_t *... function body_macro_switch_h2g (line 579) | static void __attribute__((noipa)) body_macro_switch_h2g(void) function start_macro_set_g2h_target (line 599) | static inline size_t start_macro_set_g2h_target(macro_args_t args, uint8... function body_macro_set_g2h_target (line 613) | static void __attribute__((noipa)) body_macro_set_g2h_target(void) function body_macro_switch_g2h (line 630) | static void __attribute__((noipa)) body_macro_switch_g2h(void) function start_macro_landing_k2u (line 642) | static inline size_t start_macro_landing_k2u(macro_args_t args, uint8_t ... function start_macro_landing_u2k (line 653) | static inline size_t start_macro_landing_u2k(macro_args_t args, uint8_t ... function start_macro_landing_h2g (line 667) | static inline size_t start_macro_landing_h2g(macro_args_t args, uint8_t ... function start_macro_landing_g2h (line 681) | static inline size_t start_macro_landing_g2h(macro_args_t args, uint8_t ... function start_macro_set_data_permissions (line 696) | static inline size_t start_macro_set_data_permissions(macro_args_t args,... FILE: rvzr/executor_km/x86/page_tables_guest.c function gpa_is_valid (line 107) | static inline bool gpa_is_valid(hgpa_t *translations, uint64_t gpa) function set_last_pt_level (line 117) | static inline int set_last_pt_level(pte_t_ *pt, hgpa_t *translation, uin... function set_ept_entry (line 129) | static inline int set_ept_entry(actor_ept_t *actor_ept_base, hgpa_t *tra... function set_guest_page_tables (line 171) | static int set_guest_page_tables(void) function set_extended_page_tables (line 273) | static int set_extended_page_tables(void) function update_eptp (line 342) | static int update_eptp(void) function map_sandbox_to_guest_memory (line 359) | int map_sandbox_to_guest_memory(void) function set_faulty_page_guest_permissions (line 380) | void set_faulty_page_guest_permissions(void) function restore_faulty_page_guest_permissions (line 407) | void restore_faulty_page_guest_permissions(void) function set_faulty_page_ept_permissions (line 424) | void set_faulty_page_ept_permissions(void) function restore_faulty_page_ept_permissions (line 451) | void restore_faulty_page_ept_permissions(void) function dbg_dump_guest_page_tables (line 473) | int dbg_dump_guest_page_tables(int actor_id) function dbg_dump_ept (line 548) | int dbg_dump_ept(int actor_id) function allocate_guest_page_tables (line 615) | int allocate_guest_page_tables() function free_guest_page_tables (line 662) | void free_guest_page_tables(void) FILE: rvzr/executor_km/x86/perf_counters.c type pfc_config (line 15) | struct pfc_config { type pfc_name_e (line 24) | typedef enum { function get_pfc_config_by_name (line 34) | static int get_pfc_config_by_name(pfc_name_e pfc_name, struct pfc_config... function pfc_write (line 154) | static int pfc_write(unsigned int id, struct pfc_config *config, unsigne... function pfc_configure (line 197) | int pfc_configure(void) function init_perf_counters (line 247) | int init_perf_counters(void) { return 0; } function free_perf_counters (line 248) | void free_perf_counters(void) {} FILE: rvzr/executor_km/x86/special_registers.c function _read_cr0 (line 23) | static inline unsigned long _read_cr0(void) function _write_cr0 (line 30) | static inline void _write_cr0(unsigned long val) { asm volatile("mov %0,... function _read_cr4 (line 32) | static inline unsigned long _read_cr4(void) function _write_cr4 (line 39) | static inline void _write_cr4(unsigned long val) { asm volatile("mov %0,... function set_msrs_for_user_actors (line 47) | static int set_msrs_for_user_actors(void) function set_msrs_for_vmx (line 63) | static int set_msrs_for_vmx(void) function set_msrs_for_svm (line 90) | static int set_msrs_for_svm(void) function get_ssbp_patch_msr_ctrls (line 106) | static int get_ssbp_patch_msr_ctrls(uint64_t *msr_id, uint64_t *msr_mask) function get_prefetcher_msr_ctrls (line 137) | static int get_prefetcher_msr_ctrls(uint64_t *msr_id, uint64_t *msr_mask) function apply_msr_mask (line 168) | static int apply_msr_mask(uint64_t msr_id, uint64_t msr_mask, bool enable) function set_special_registers (line 188) | int set_special_registers(void) function store_orig_msr_state (line 239) | static int store_orig_msr_state(void) function restore_special_registers (line 259) | void restore_special_registers(void) function init_special_register_manager (line 311) | int init_special_register_manager(void) function free_special_register_manager (line 317) | void free_special_register_manager(void) { SAFE_FREE(orig_special_regist... FILE: rvzr/executor_km/x86/svm.c type page (line 23) | struct page type page (line 27) | struct page function init_seg (line 46) | inline static void init_seg(seg_t *seg, uint16_t selector, uint64_t base... function init_sys_seg (line 59) | static void init_sys_seg(seg_t *seg, uint32_t type) function svm_check_cpu_compatibility (line 74) | int svm_check_cpu_compatibility(void) function start_svm_operation (line 100) | int start_svm_operation(void) function stop_svm_operation (line 121) | void stop_svm_operation(void) function store_orig_vmcb_state (line 132) | int store_orig_vmcb_state(void) { return 0; } function restore_orig_vmcb_state (line 138) | void restore_orig_vmcb_state(void) {} function set_vmcb_state (line 143) | int set_vmcb_state(void) function set_vmcb_guest_state (line 176) | static int set_vmcb_guest_state(vmcb_t *vmcb_hva) function set_vmcb_control (line 254) | static int set_vmcb_control(vmcb_t *vmcb_hva, uint64_t actor_id) function print_svm_exit_info (line 377) | int print_svm_exit_info(void) function init_svm (line 408) | int init_svm(void) function free_svm (line 442) | void free_svm(void) FILE: rvzr/executor_km/x86/vmx.c type vmx_basic_exit_reason_t (line 86) | typedef struct { function vmxon (line 99) | static inline void vmxon(uint64_t phys, uint8_t *err_inv, uint8_t *err_val) function vmxoff (line 113) | static inline void vmxoff(uint8_t *err_inv, uint8_t *err_val) function vmptrst (line 124) | static inline void vmptrst(uint64_t *dest, uint8_t *err_inv, uint8_t *er... function vmptrld (line 137) | static inline void vmptrld(uint64_t vmcs_hpa, uint8_t *err_inv, uint8_t ... function vmclear (line 148) | static inline void vmclear(uint64_t vmcs_hpa, uint8_t *err_inv, uint8_t ... function vmread (line 159) | static inline void vmread(uint64_t field, uint64_t *dest, uint8_t *err_i... function vmwrite (line 172) | static inline void vmwrite(uint64_t field, uint64_t value, uint8_t *err_... function check_vmx_controls (line 188) | static int check_vmx_controls(uint32_t options, uint32_t msr) function vmx_check_cpu_compatibility (line 218) | int vmx_check_cpu_compatibility(void) function start_vmx_operation (line 266) | int start_vmx_operation(void) function stop_vmx_operation (line 311) | void stop_vmx_operation(void) function store_orig_vmcs_state (line 335) | int store_orig_vmcs_state(void) function restore_orig_vmcs_state (line 350) | void restore_orig_vmcs_state(void) function set_vmcs_state (line 372) | int set_vmcs_state(void) function set_vmcs_guest_state (line 433) | static int set_vmcs_guest_state(void) function set_vmcs_host_state (line 494) | static int set_vmcs_host_state(void) function set_vmcs_exec_control (line 548) | static int set_vmcs_exec_control(int actor_id) function set_vmcs_exit_control (line 632) | static int set_vmcs_exit_control(void) function set_vmcs_entry_control (line 648) | static int set_vmcs_entry_control(void) function make_vmcs_launched (line 667) | static int make_vmcs_launched(int actor_id) function print_vmlaunch_error_info (line 727) | static void print_vmlaunch_error_info(int err_inv, int err_val, int acto... function print_vmx_exit_info (line 741) | int print_vmx_exit_info(void) function init_vmx (line 820) | int init_vmx(void) function free_vmx (line 840) | void free_vmx(void) FILE: rvzr/factory.py class FactoryException (line 32) | class FactoryException(SystemExit): method __init__ (line 35) | def __init__(self, options: Dict[str, Type[Any]], key: str, conf_optio... function get_fuzzer (line 53) | def get_fuzzer(instruction_set_path: str, working_directory: str, existi... function get_executor (line 94) | def get_executor(enable_mismatch_check_mode: bool = False) -> executor.E... function _get_exec_clause_name (line 153) | def _get_exec_clause_name() -> str: function _get_x86_unicorn_model (line 168) | def _get_x86_unicorn_model(bases: BaseAddrTuple, obs_clause_name: str, e... function _get_arm64_unicorn_model (line 179) | def _get_arm64_unicorn_model(bases: BaseAddrTuple, obs_clause_name: str,... function _get_dr_model (line 190) | def _get_dr_model(bases: BaseAddrTuple, obs_clause_name: str, exec_claus... function get_model (line 208) | def get_model(bases: BaseAddrTuple, enable_mismatch_check_mode: bool = F... function get_program_generator (line 258) | def get_program_generator(seed: int, instruction_set: InstructionSet) ->... function get_asm_parser (line 270) | def get_asm_parser(instruction_set: InstructionSet) -> AsmParser: function get_elf_parser (line 278) | def get_elf_parser() -> elf_parser.ELFParser: function get_data_generator (line 294) | def get_data_generator(seed: int) -> data_generator.DataGenerator: function get_analyser (line 313) | def get_analyser() -> analyser.Analyser: function get_minimizer (line 329) | def get_minimizer(fuzzer_: fuzzer.Fuzzer, instruction_set: InstructionSe... function get_downloader (line 348) | def get_downloader(arch: str, extensions: List[str], out_file: str) -> D... FILE: rvzr/fuzzer.py class _RoundState (line 51) | class _RoundState: method __init__ (line 90) | def __init__(self, is_speculative: bool) -> None: class _RoundManager (line 102) | class _RoundManager: method __init__ (line 123) | def __init__(self, fuzzer: Fuzzer, test_case: TestCaseProgram, inputs:... method execute_stage (line 139) | def execute_stage(self, stage: RoundStage) -> None: method finalize (line 206) | def finalize(self) -> None: method _normal_stage (line 211) | def _normal_stage(self) -> None: method _boost_inputs (line 226) | def _boost_inputs(self) -> None: method _collect_ctraces (line 244) | def _collect_ctraces(self) -> None: method _collect_htraces (line 260) | def _collect_htraces(self) -> None: method _check_violations (line 273) | def _check_violations(self) -> None: method _update_ignore_list (line 284) | def _update_ignore_list(self) -> None: method _priming_check (line 296) | def _priming_check(self) -> None: method _check_for_architectural_mismatch (line 373) | def _check_for_architectural_mismatch(self) -> None: class Fuzzer (line 428) | class Fuzzer: method __init__ (line 459) | def __init__(self, method start (line 487) | def start(self, num_test_cases: int, num_inputs: int, timeout: int, no... method fuzzing_round (line 548) | def fuzzing_round(self, test_case: TestCaseProgram, inputs: List[Input... method standalone_filter (line 647) | def standalone_filter(self, test_case: TestCaseProgram, inputs: List[I... method standalone_generate (line 651) | def standalone_generate(self, program_generator_seed: int, num_test_ca... method standalone_analyse (line 682) | def standalone_analyse(self, ctrace_file: str, htrace_file: str) -> None: method _set_generation_function (line 722) | def _set_generation_function(self, type_: FuzzingMode) -> None: method _create_timestamped_dir (line 734) | def _create_timestamped_dir(path: str) -> str: method _store_violation_artifact (line 741) | def _store_violation_artifact(self, violation: Violation, path: str) -... method _report_bug_tainting (line 838) | def _report_bug_tainting(self, round_manager: _RoundManager) -> None: method _report_bug_arch (line 850) | def _report_bug_arch(self, round_manager: _RoundManager) -> None: method _filter (line 858) | def _filter(self, test_case: TestCaseProgram, inputs: List[InputData])... method _adjust_config (line 871) | def _adjust_config(self, _: str) -> None: method _asm_parser_adapter (line 874) | def _asm_parser_adapter(self, asm: str) -> TestCaseProgram: class ArchitecturalFuzzer (line 879) | class ArchitecturalFuzzer(Fuzzer): method __init__ (line 889) | def __init__(self, method fuzzing_round (line 898) | def fuzzing_round(self, test_case: TestCaseProgram, inputs: List[Input... class ArchDiffFuzzer (line 909) | class ArchDiffFuzzer(Fuzzer): method fuzzing_round (line 917) | def fuzzing_round(self, test_case: TestCaseProgram, inputs: List[Input... method _create_fenced_test_case (line 962) | def _create_fenced_test_case(original_asm: str, fenced_asm: str, asm_p... FILE: rvzr/instruction_spec.py class OT (line 13) | class OT(Enum): method __str__ (line 25) | def __str__(self) -> str: class OperandSpec (line 35) | class OperandSpec: method __init__ (line 67) | def __init__(self, method __str__ (line 85) | def __str__(self) -> str: class InstructionSpec (line 90) | class InstructionSpec: method __init__ (line 120) | def __init__(self, name: str, category: str, is_control_flow: bool = F... method __str__ (line 128) | def __str__(self) -> str: method __hash__ (line 134) | def __hash__(self) -> int: FILE: rvzr/isa_spec.py class InstructionSet (line 30) | class InstructionSet: method __init__ (line 53) | def __init__(self, filename: str, include_categories: Optional[List[st... method get_return_spec (line 62) | def get_return_spec(self) -> InstructionSpec: method get_unconditional_jump_spec (line 70) | def get_unconditional_jump_spec(self) -> InstructionSpec: function _read_json_spec (line 89) | def _read_json_spec(isa: InstructionSet, filename: str) -> None: function _parse_json_operand (line 109) | def _parse_json_operand(op: Dict[str, Any], parent: InstructionSpec) -> ... function _reduce (line 133) | def _reduce(isa: InstructionSet, include_categories: Optional[List[str]]... function _set_isa_properties (line 228) | def _set_isa_properties(isa: InstructionSet) -> None: function _dedup (line 245) | def _dedup(isa: InstructionSet) -> None: function _set_categories (line 283) | def _set_categories(isa: InstructionSet) -> None: FILE: rvzr/logs.py class _LoggingConfig (line 52) | class _LoggingConfig: # pylint: disable=too-few-public-methods # becau... method __init__ (line 89) | def __init__(self) -> None: method update_logging_modes (line 96) | def update_logging_modes(self) -> None: function update_logging_after_config_change (line 137) | def update_logging_after_config_change() -> None: function error (line 146) | def error(msg: str, print_tb: bool = False, print_last_tb: bool = False)... function warning (line 167) | def warning(src: str, msg: str) -> None: function inform (line 177) | def inform(src: str, msg: str, end: str = "\n") -> None: function dbg (line 185) | def dbg(src: str, msg: str) -> None: class FuzzLogger (line 198) | class FuzzLogger: method __init__ (line 209) | def __init__(self) -> None: method reset (line 215) | def reset(self, max_iterations: int, start_time: datetime) -> None: method start (line 223) | def start(self, iterations: int, start_time: datetime) -> None: method start_round (line 230) | def start_round(self, round_id: int) -> None: method priming (line 254) | def priming(self, num_violations: int) -> None: method nesting_increased (line 262) | def nesting_increased(self) -> None: method slow_path (line 270) | def slow_path(self) -> None: method timeout (line 278) | def timeout(self) -> None: method sample_size_increase (line 284) | def sample_size_increase(self, sample_size: int) -> None: method report_violations (line 292) | def report_violations(self, violation: Violation) -> None: method finish (line 297) | def finish(self) -> None: method report_model_coverage (line 311) | def report_model_coverage(self, model: Model) -> None: method dbg_dump_traces (line 321) | def dbg_dump_traces(self, inputs: List[InputData], htraces: List[HTrace], method dbg_dump_architectural_traces (line 362) | def dbg_dump_architectural_traces(self, hardware_regs: List[List[int]], method dbg_violation (line 383) | def dbg_violation(self, violation: Violation, model: Model) -> None: method dbg_priming_progress (line 402) | def dbg_priming_progress(self, input_id: int, current_input_id: int) -... method dbg_priming_fail (line 410) | def dbg_priming_fail(self, input_id: int, current_input_id: int, htrac... class ModelLogger (line 423) | class ModelLogger: method __init__ (line 432) | def __init__(self) -> None: method set_model_layout (line 435) | def set_model_layout(self, layout: SandboxLayout) -> None: method dbg_header (line 439) | def dbg_header(self, input_id: int) -> None: method dbg_mem_access (line 448) | def dbg_mem_access(self, is_store: bool, value: int, address: int, siz... method dbg_instruction (line 487) | def dbg_instruction(self, pc: int, model: UnicornModel, state: ModelEx... method dbg_rollback (line 528) | def dbg_rollback(self, address: int) -> None: method dbg_exception (line 543) | def dbg_exception(self, errno: int, descr: str) -> None: class GeneratorLogger (line 557) | class GeneratorLogger: method __init__ (line 560) | def __init__(self) -> None: method dbg_dump_instruction_pool (line 563) | def dbg_dump_instruction_pool(self, instructions: List[InstructionSpec... class ExecutorLogger (line 584) | class ExecutorLogger: method __init__ (line 587) | def __init__(self) -> None: method dbg_dump_raw_traces (line 590) | def dbg_dump_raw_traces(self, htraces: List[HTrace]) -> None: class ISALogger (line 603) | class ISALogger: method __init__ (line 606) | def __init__(self) -> None: method dbg_dump_filtering_reason (line 609) | def dbg_dump_filtering_reason(self, instruction: InstructionSpec, reas... FILE: rvzr/model.py class Model (line 21) | class Model(ABC): method __init__ (line 38) | def __init__(self, method load_test_case (line 45) | def load_test_case(self, test_case: TestCaseProgram) -> None: method trace_test_case (line 54) | def trace_test_case(self, inputs: List[InputData], nesting: int) -> Li... method trace_test_case_with_taints (line 61) | def trace_test_case_with_taints(self, inputs: List[InputData], method report_coverage (line 70) | def report_coverage(self, path: str) -> None: class DummyModel (line 77) | class DummyModel(Model): method __init__ (line 87) | def __init__(self, method load_test_case (line 93) | def load_test_case(self, test_case: TestCaseProgram) -> None: method trace_test_case (line 96) | def trace_test_case(self, inputs: List[InputData], nesting: int) -> Li... method trace_test_case_with_taints (line 99) | def trace_test_case_with_taints(self, inputs: List[InputData], method report_coverage (line 105) | def report_coverage(self, path: str) -> None: FILE: rvzr/model_dynamorio/adapter/main.c function parse_args (line 28) | static int parse_args(int argc, char const *argv[]) function cleanup (line 60) | static void cleanup(rcbf_t *rcbf, rdbf_t *rdbf) function main (line 66) | int main(int argc, char const *argv[]) FILE: rvzr/model_dynamorio/adapter/parser.c function rcbf_t (line 18) | rcbf_t *parse_rcbf(const char *filename) function free_rcbf (line 107) | void free_rcbf(rcbf_t *rcbf) function rdbf_t (line 119) | rdbf_t *parse_rdbf(const char *filename) function free_rdbf (line 180) | void free_rdbf(rdbf_t *rdbf) FILE: rvzr/model_dynamorio/adapter/rcbf.h type rcbf_header_t (line 26) | typedef struct { type actor_metadata_t (line 31) | typedef struct { type symbol_entry_t (line 40) | typedef struct { type code_section_metadata_t (line 47) | typedef struct { type rcbf_code_section_t (line 53) | typedef struct { type rcbf_t (line 57) | typedef struct { FILE: rvzr/model_dynamorio/adapter/rdbf.h type rdbf_header_t (line 14) | typedef struct { type data_section_metadata_t (line 19) | typedef struct { type rdbf_data_section_t (line 24) | typedef struct { type rdbf_t (line 30) | typedef struct { FILE: rvzr/model_dynamorio/adapter/sandbox.c function load_code_in_sandbox (line 27) | int load_code_in_sandbox(rcbf_t *rcbf_data) function load_data_in_sandbox (line 57) | int load_data_in_sandbox(rdbf_t *rdbf_data, int input_id) function sandbox_t (line 84) | sandbox_t *get_sandbox() { return sandbox; } function allocate_sandbox (line 92) | int allocate_sandbox(uint64_t n_actors) function free_sandbox (line 113) | void free_sandbox() FILE: rvzr/model_dynamorio/adapter/sandbox.h type data_section_t (line 21) | typedef struct { type code_section_t (line 35) | typedef struct { type sandbox_t (line 46) | typedef struct { FILE: rvzr/model_dynamorio/backend/cli.cpp function parse_cli (line 121) | void parse_cli(int argc, const char **argv, DR_PARAM_OUT cli_args_t &par... function validate_tracer (line 185) | bool validate_tracer(cli_args_t *parsed_args) function validate_speculator (line 203) | bool validate_speculator(cli_args_t *parsed_args) function validate_taint_tracker (line 250) | static bool validate_taint_tracker(cli_args_t *parsed_args) FILE: rvzr/model_dynamorio/backend/dispatcher.cpp function pc_t (line 40) | static pc_t instruction_dispatch(dr_mcontext_t *mc, void *dc, const Disp... function pc_t (line 57) | static pc_t mem_access_dispatch(void *dc, dr_mcontext_t *mc, const Dispa... function dispatch_callback (line 89) | static void dispatch_callback(uint64_t opcode, uint64_t pc, uint64_t has... function exit_callback (line 135) | static void exit_callback() function dr_emit_flags_t (line 220) | dr_emit_flags_t Dispatcher::instrument_instruction(void *drcontext, inst... FILE: rvzr/model_dynamorio/backend/factory.cpp function create_tracer (line 82) | unique_ptr create_tracer(const string &tracer_type, const str... function get_tracer_list (line 93) | vector get_tracer_list() function create_speculator (line 103) | std::unique_ptr create_speculator(const string &speculato... function get_speculator_list (line 116) | vector get_speculator_list() function create_logger (line 126) | unique_ptr create_logger(const string &out_path, int level, bool... function create_taint_tracker (line 138) | std::unique_ptr create_taint_tracker(bool enable, const st... FILE: rvzr/model_dynamorio/backend/include/cli.hpp type Mode (line 15) | enum class Mode : uint8_t { type cli_args_t (line 20) | struct cli_args_t { FILE: rvzr/model_dynamorio/backend/include/dispatcher.hpp class Dispatcher (line 24) | class Dispatcher method Dispatcher (line 29) | Dispatcher(const Dispatcher &) = delete; method Dispatcher (line 30) | Dispatcher &operator=(const Dispatcher &) = delete; method Dispatcher (line 31) | Dispatcher(Dispatcher &&) = delete; method Dispatcher (line 32) | Dispatcher &operator=(Dispatcher &&) = delete; method is_instrumentation_on (line 68) | [[nodiscard]] bool is_instrumentation_on() const { return instrumentat... FILE: rvzr/model_dynamorio/backend/include/logger.hpp class Logger (line 23) | class Logger type log_level_t (line 27) | enum log_level_t : uint8_t { method Logger (line 40) | Logger(const Logger &) = delete; method Logger (line 41) | Logger(Logger &&) = delete; method Logger (line 42) | Logger &operator=(const Logger &) = delete; method Logger (line 43) | Logger &operator=(Logger &&) = delete; method is_enabled (line 46) | [[nodiscard]] bool is_enabled() const { return log_level > LOG_NONE; } FILE: rvzr/model_dynamorio/backend/include/speculator_abc.hpp class SpeculatorABC (line 39) | class SpeculatorABC method SpeculatorABC (line 42) | SpeculatorABC(int max_nesting_, int max_spec_window_, Logger &logger, method SpeculatorABC (line 50) | SpeculatorABC(const SpeculatorABC &) = delete; method SpeculatorABC (line 51) | SpeculatorABC &operator=(const SpeculatorABC &) = delete; method SpeculatorABC (line 52) | SpeculatorABC(SpeculatorABC &&) = delete; method SpeculatorABC (line 53) | SpeculatorABC &operator=(SpeculatorABC &&) = delete; method get_nesting_level (line 66) | [[nodiscard]] unsigned int get_nesting_level() const { return nesting; } FILE: rvzr/model_dynamorio/backend/include/speculators/cond.hpp class SpeculatorCond (line 16) | class SpeculatorCond : public SpeculatorABC FILE: rvzr/model_dynamorio/backend/include/speculators/seq.hpp class SpeculatorSeq (line 15) | class SpeculatorSeq : public SpeculatorABC FILE: rvzr/model_dynamorio/backend/include/taint_tracker.hpp type RVZRRegId (line 50) | enum class RVZRRegId : uint64_t { type TrackedInstruction (line 70) | struct TrackedInstruction { type Dependencies (line 83) | struct Dependencies { class TaintTracker (line 103) | class TaintTracker method TaintTracker (line 106) | TaintTracker(const std::string &out_path_, Logger &logger_, Decoder &d... method TaintTracker (line 116) | TaintTracker(const TaintTracker &) = delete; method TaintTracker (line 117) | TaintTracker &operator=(const TaintTracker &) = delete; method TaintTracker (line 118) | TaintTracker(TaintTracker &&) = delete; method TaintTracker (line 119) | TaintTracker &operator=(TaintTracker &&) = delete; class NoneTaintTracker (line 243) | class NoneTaintTracker : public TaintTracker method NoneTaintTracker (line 246) | NoneTaintTracker(const std::string &out_path_, Logger &logger_, Decode... method NoneTaintTracker (line 251) | NoneTaintTracker(const NoneTaintTracker &) = delete; method NoneTaintTracker (line 252) | NoneTaintTracker &operator=(const NoneTaintTracker &) = delete; method NoneTaintTracker (line 253) | NoneTaintTracker(NoneTaintTracker &&) = delete; method NoneTaintTracker (line 254) | NoneTaintTracker &operator=(NoneTaintTracker &&) = delete; method enable (line 256) | void enable() override {} method finalize (line 258) | void finalize() override {} method checkpoint (line 260) | void checkpoint(bool include_current_inst) override {} method rollback (line 262) | void rollback() override {} method track_instruction (line 264) | void track_instruction(instr_obs_t instr, dr_mcontext_t *mc, void *dc)... method track_memory_access (line 266) | void track_memory_access(bool is_write, void *address, uint64_t size) ... method taint (line 268) | void taint(taint_entry_type_t value_type) override {} FILE: rvzr/model_dynamorio/backend/include/tracer_abc.hpp class TracerABC (line 31) | class TracerABC method TracerABC (line 37) | TracerABC(const TracerABC &) = delete; method TracerABC (line 38) | TracerABC &operator=(const TracerABC &) = delete; method TracerABC (line 39) | TracerABC(TracerABC &&) = delete; method TracerABC (line 40) | TracerABC &operator=(TracerABC &&) = delete; FILE: rvzr/model_dynamorio/backend/include/tracers/ct.hpp class TracerCT (line 16) | class TracerCT : public TracerABC FILE: rvzr/model_dynamorio/backend/include/tracers/ind.hpp class TracerInd (line 16) | class TracerInd : public TracerABC FILE: rvzr/model_dynamorio/backend/include/tracers/pc.hpp class TracerPC (line 16) | class TracerPC : public TracerABC FILE: rvzr/model_dynamorio/backend/include/types/debug_trace.hpp type debug_trace_entry_type_t (line 14) | enum class debug_trace_entry_type_t : uint8_t { type debug_trace_entry_t (line 56) | struct debug_trace_entry_t { method dump (line 126) | void dump(std::ostream &out) const FILE: rvzr/model_dynamorio/backend/include/types/decoder.hpp type CachedInstr (line 17) | struct CachedInstr { class Decoder (line 35) | class Decoder method Decoder (line 38) | Decoder() = default; method Decoder (line 42) | Decoder(const Decoder &) = delete; method Decoder (line 43) | Decoder &operator=(const Decoder &) = delete; method Decoder (line 44) | Decoder(Decoder &&) = delete; method Decoder (line 45) | Decoder &operator=(Decoder &&) = delete; method instr_t (line 52) | instr_t *get_decoded_instr(void *drcontext, byte *pc) method byte (line 65) | byte *get_next_pc(void *drcontext, byte *pc) method clear (line 72) | void clear() method size (line 80) | [[nodiscard]] size_t size() const { return cache.size(); } method empty (line 84) | [[nodiscard]] bool empty() const { return cache.empty(); } method CachedInstr (line 93) | CachedInstr &cache_access(void *drcontext, byte *pc) FILE: rvzr/model_dynamorio/backend/include/types/file_buffer.hpp class FileBackedBuf (line 22) | class FileBackedBuf method FileBackedBuf (line 38) | FileBackedBuf(bool print) : print(print) {} method FileBackedBuf (line 44) | FileBackedBuf(const FileBackedBuf &) = delete; method FileBackedBuf (line 45) | FileBackedBuf(FileBackedBuf &&) = delete; method FileBackedBuf (line 46) | FileBackedBuf &operator=(const FileBackedBuf &other) = delete; method FileBackedBuf (line 47) | FileBackedBuf &operator=(FileBackedBuf &&other) = delete; method open (line 51) | void open(const std::string &filename_) method flush (line 71) | void flush() method push_back (line 80) | void push_back(const T &elem) method clear (line 97) | void clear() FILE: rvzr/model_dynamorio/backend/include/types/input_taint.hpp type taint_entry_type_t (line 16) | enum class taint_entry_type_t : uint8_t { type taint_entry_t (line 23) | struct taint_entry_t { class InputTaint (line 30) | class InputTaint method InputTaint (line 33) | InputTaint() = default; method InputTaint (line 35) | InputTaint(const InputTaint &) = delete; method InputTaint (line 36) | InputTaint &operator=(const InputTaint &) = delete; method InputTaint (line 37) | InputTaint(InputTaint &&) = delete; method InputTaint (line 38) | InputTaint &operator=(InputTaint &&) = delete; method push_back (line 44) | void push_back(const taint_entry_t &entry) { entries.push_back(entry); } method size (line 46) | [[nodiscard]] size_t size() const { return entries.size(); } method empty (line 48) | [[nodiscard]] bool empty() const { return entries.empty(); } method taint_entry_t (line 51) | taint_entry_t operator[](size_t index) const { return entries[index]; } method store_to_file (line 55) | void store_to_file(const char *file_path) FILE: rvzr/model_dynamorio/backend/include/types/store_log.hpp class StoreLog (line 25) | class StoreLog method StoreLog (line 28) | StoreLog() = default; method StoreLog (line 30) | StoreLog(const StoreLog &) = delete; method StoreLog (line 31) | StoreLog(StoreLog &&) = delete; method StoreLog (line 32) | StoreLog &operator=(const StoreLog &) = delete; method StoreLog (line 33) | StoreLog &operator=(StoreLog &&) = delete; method store_log_entry_t (line 36) | [[nodiscard]] const store_log_entry_t &back() const { return entries.b... method pop_back (line 38) | void pop_back() method push_back (line 47) | void push_back(const store_log_entry_t &entry) { entries.push_back(ent... method size (line 49) | [[nodiscard]] size_t size() const { return entries.size(); } method empty (line 51) | [[nodiscard]] bool empty() const { return entries.empty(); } method update_committed (line 54) | void update_committed() { last_committed = entries.size(); } method has_uncommitted (line 56) | [[nodiscard]] bool has_uncommitted() const { return entries.size() > l... method flush_uncommitted (line 58) | void flush_uncommitted() FILE: rvzr/model_dynamorio/backend/include/types/trace.hpp type trace_entry_type_t (line 13) | enum class trace_entry_type_t : uint8_t { type trace_entry_t (line 44) | struct trace_entry_t { method dump (line 58) | void dump(std::ostream &out) const FILE: rvzr/model_dynamorio/backend/logger.cpp function get_module (line 26) | static std::pair get_module(uint64_t pc) function dst_type (line 49) | static constexpr dst_type saturate_cast(const src_type &val) FILE: rvzr/model_dynamorio/backend/model.cpp type dr_model (line 43) | namespace dr_model class InstrumentationStateMachine (line 54) | class InstrumentationStateMachine method InstrumentationStateMachine (line 57) | InstrumentationStateMachine(std::string name_) : name(std::move(name... method InstrumentationStateMachine (line 59) | InstrumentationStateMachine(const InstrumentationStateMachine &) = d... method InstrumentationStateMachine (line 60) | InstrumentationStateMachine &operator=(const InstrumentationStateMac... method InstrumentationStateMachine (line 61) | InstrumentationStateMachine(InstrumentationStateMachine &&) = delete; method InstrumentationStateMachine (line 62) | InstrumentationStateMachine &operator=(InstrumentationStateMachine &... method register_entry_pc (line 70) | void register_entry_pc(app_pc pc) method is_entry_pc (line 77) | bool is_entry_pc(byte const *pc) const { return entry_found and pc =... method register_exit_pc (line 79) | void register_exit_pc(app_pc pc) method is_exit_pc (line 86) | bool is_exit_pc(byte const *pc) const { return exit_found and pc == ... method start_instrumentation (line 90) | bool start_instrumentation(void *drcontext) method end_instrumentation (line 129) | void end_instrumentation(void *drcontext, instrlist_t *bb, instr_t *... function event_module_load (line 174) | static void event_module_load(void * /*drcontext*/, const module_data_... function dr_emit_flags_t (line 195) | static dr_emit_flags_t event_bb_app2app(void *drcontext, void * /*tag*... function dr_emit_flags_t (line 219) | static dr_emit_flags_t event_bb_instrumentation(void *drcontext, void ... function dr_signal_action_t (line 255) | static dr_signal_action_t event_signal(void *drcontext, dr_siginfo_t *... function event_exit (line 267) | static void event_exit() function dr_model_init (line 291) | static void dr_model_init() function dr_model_del (line 320) | void dr_model_del() noexcept function DR_EXPORT (line 348) | DR_EXPORT void dr_client_main(client_id_t /* client_id */, int argc, con... FILE: rvzr/model_dynamorio/backend/speculator_abc.cpp function is_speculation_barrier (line 55) | static bool is_speculation_barrier(const uint64_t opcode) function pc_t (line 91) | pc_t SpeculatorABC::rollback(dr_mcontext_t *mc) function pc_t (line 156) | pc_t SpeculatorABC::handle_instruction(instr_obs_t instr, dr_mcontext_t ... function is_supported_reg (line 225) | static bool is_supported_reg(const reg_id_t reg) function get_load_inst (line 233) | static std::pair get_load_inst(void *dc, byte *pc, De... FILE: rvzr/model_dynamorio/backend/speculators/cond.cpp function get_branch_info (line 34) | static std::optional get_branch_info(instr_obs_t instr, dr_m... function pc_t (line 60) | pc_t SpeculatorCond::handle_instruction(instr_obs_t instr, dr_mcontext_t... FILE: rvzr/model_dynamorio/backend/taint_tracker.cpp type FlagMapping (line 41) | struct FlagMapping { function reg_id_t (line 69) | static inline reg_id_t normalize_reg(reg_id_t reg) function track_operand (line 78) | static inline void track_operand(const bool is_src, const opnd_t opnd, function track_flags (line 120) | static inline void track_flags(const uint eflags, struct TrackedInstruct... function RVZRRegId (line 136) | static RVZRRegId dr_reg_id_to_rvzr_reg_id(reg_id_t reg) function is_override_instruction (line 196) | static bool is_override_instruction(const TrackedInstruction *tracked_in... function label_is_reg (line 229) | static bool label_is_reg(tracked_label_t label) { return label <= MAX_RE... FILE: rvzr/model_dynamorio/backend/tracers/ind.cpp function get_mbr_info (line 33) | static std::optional get_mbr_info(instr_obs_t instr, dr_mcon... FILE: rvzr/model_dynamorio/backend/util.cpp function reserve_register_checked (line 22) | void reserve_register_checked(void *drcontext, instrlist_t *ilist, instr... function unreserve_register_checked (line 31) | void unreserve_register_checked(void *drcontext, instrlist_t *ilist, ins... function force_write (line 39) | bool force_write(byte *addr, size_t size, const uint64_t *val, size_t *w... function is_illegal_jump (line 54) | bool is_illegal_jump(instr_obs_t instr, dr_mcontext_t *mc, void *dc, Dec... function flush_bb_cache (line 102) | void flush_bb_cache() FILE: rvzr/model_dynamorio/model.py class DynamoRIOModel (line 48) | class DynamoRIOModel(Model): method __init__ (line 64) | def __init__(self, method __del__ (line 75) | def __del__(self) -> None: method load_test_case (line 80) | def load_test_case(self, test_case: TestCaseProgram) -> None: method trace_test_case (line 95) | def trace_test_case(self, inputs: List[InputData], nesting: int) -> Li... method trace_test_case_with_taints (line 101) | def trace_test_case_with_taints(self, inputs: List[InputData], method report_coverage (line 111) | def report_coverage(self, path: str) -> None: method configure_clauses (line 114) | def configure_clauses(self, obs_clause_name: str, exec_clause_name: st... method get_supported_obs_clauses (line 142) | def get_supported_obs_clauses(cls, check_installation: bool = True) ->... method get_supported_exec_clauses (line 155) | def get_supported_exec_clauses(cls, check_installation: bool = True) -... method _check_if_installed (line 170) | def _check_if_installed(cls) -> None: method _trace_test_case_common (line 189) | def _trace_test_case_common(self, inputs: List[InputData], nesting: int, method _construct_drrun_cmd (line 227) | def _construct_drrun_cmd(self, enable_taints: bool, nesting: int) -> str: method _update_layout (line 251) | def _update_layout(self) -> None: class _DRFileManager (line 264) | class _DRFileManager: method __init__ (line 269) | def __init__(self) -> None: method cleanup_on_load_test_case (line 278) | def cleanup_on_load_test_case(self) -> None: method cleanup_after_tracing (line 285) | def cleanup_after_tracing(self) -> None: method _create_temp_files (line 296) | def _create_temp_files(self) -> None: method delete_temp_files (line 310) | def delete_temp_files(self) -> None: class _TraceReader (line 329) | class _TraceReader: method __init__ (line 336) | def __init__(self, layout: SandboxLayout, test_case: TestCaseProgram) ... method decode_traces (line 341) | def decode_traces(self, trace_path: str) -> List[CTrace]: method _raw_to_ctrace (line 361) | def _raw_to_ctrace(self, raw_trace: _RawTrace) -> CTrace: method _trim_traces (line 378) | def _trim_traces(self, traces: List[CTrace]) -> List[CTrace]: class _DbgTraceReader (line 414) | class _DbgTraceReader: method __init__ (line 419) | def __init__(self, layout: SandboxLayout, test_case: TestCaseProgram) ... method decode_traces (line 424) | def decode_traces(self, dbg_path: str) -> List[CTrace]: method _raw_dbg_to_ctrace (line 445) | def _raw_dbg_to_ctrace(self, raw_dbg_trace: _RawDebugTrace) -> CTrace: method _trim_dbg_traces (line 462) | def _trim_dbg_traces(self, dbg_traces: List[CTrace]) -> List[CTrace]: class _TaintReader (line 497) | class _TaintReader: method __init__ (line 510) | def __init__(self, layout: SandboxLayout, test_case: TestCaseProgram) ... method decode_taints (line 514) | def decode_taints(self, taint_path: str) -> List[InputTaint]: method _file_to_ndarray (line 550) | def _file_to_ndarray(self, path: str) -> NDArray[np.uint64]: FILE: rvzr/model_dynamorio/trace_decoder.py class TraceEntryType (line 27) | class TraceEntryType(Enum): class DebugTraceEntryType (line 62) | class DebugTraceEntryType(Enum): class TraceDecoder (line 153) | class TraceDecoder: method __init__ (line 162) | def __init__(self) -> None: method read_trace_marker (line 174) | def read_trace_marker(self, f: BufferedReader) -> Union[_MarkerType, L... method decode_trace_file (line 185) | def decode_trace_file(self, file: str) -> List[List[Any]]: method decode_debug_trace_file (line 223) | def decode_debug_trace_file(self, file: str) -> List[List[Any]]: method is_trace_corrupted (line 261) | def is_trace_corrupted(self, trace_path: str) -> bool: method _decode_trace_entry (line 306) | def _decode_trace_entry(self, chunk: bytes) -> Any: method _decode_debug_trace_entry (line 322) | def _decode_debug_trace_entry(self, chunk: bytes) -> Any: function main (line 339) | def main() -> None: FILE: rvzr/model_unicorn/coverage.py function _get_instruction_signature (line 20) | def _get_instruction_signature(instruction: Instruction) -> str: class InstructionCoverage (line 56) | class InstructionCoverage: method __init__ (line 66) | def __init__(self) -> None: method start_test_case (line 69) | def start_test_case(self) -> None: method add_instruction (line 81) | def add_instruction(self, inst: Instruction) -> None: method finish_test_case (line 89) | def finish_test_case(self) -> None: method report (line 97) | def report(self, path: str) -> None: FILE: rvzr/model_unicorn/execution_context.py class ModelExecutionState (line 24) | class ModelExecutionState: method __init__ (line 60) | def __init__(self, test_case: TestCaseProgram, layout: SandboxLayout, ... method full_reset (line 68) | def full_reset(self) -> None: method reset_after_em_stop (line 74) | def reset_after_em_stop(self, start_pc: int) -> None: method is_exit_addr (line 85) | def is_exit_addr(self, address: int) -> bool: method update_context (line 90) | def update_context(self, em: Uc, address: int) -> None: method current_test_case (line 98) | def current_test_case(self) -> TestCaseProgram: method _set_fault_handler_addr (line 102) | def _set_fault_handler_addr(self, fh_id: int) -> None: FILE: rvzr/model_unicorn/interpreter.py class ExtraInterpreter (line 37) | class ExtraInterpreter(ABC): method __init__ (line 48) | def __init__(self, target_desc: TargetDesc, model: UnicornModel): method load_test_case (line 54) | def load_test_case(self, test_case: TestCaseProgram) -> None: method load_input (line 58) | def load_input(self, input_: InputData) -> None: method interpret_instruction (line 61) | def interpret_instruction(self, address: int, state: ModelExecutionSta... method interpret_mem_access (line 74) | def interpret_mem_access(self, access: int, address: int, size: int, v... method _interpret_macro (line 78) | def _interpret_macro(self, macro: Instruction, pc: int) -> None: method _emulate_vm_execution (line 82) | def _emulate_vm_execution(self, address: int) -> None: method _emulate_userspace_execution (line 86) | def _emulate_userspace_execution(self, address: int) -> None: class X86ExtraInterpreter (line 93) | class X86ExtraInterpreter(ExtraInterpreter): method __init__ (line 101) | def __init__(self, target_desc: TargetDesc, model: UnicornModel): method load_test_case (line 108) | def load_test_case(self, test_case: TestCaseProgram) -> None: method load_input (line 114) | def load_input(self, input_: InputData) -> None: method interpret_mem_access (line 117) | def interpret_mem_access(self, access: int, address: int, size: int, v... method _interpret_macro (line 121) | def _interpret_macro(self, macro: Instruction, pc: int) -> None: method _emulate_vm_execution (line 124) | def _emulate_vm_execution(self, address: int) -> None: method _emulate_userspace_execution (line 127) | def _emulate_userspace_execution(self, address: int) -> None: class ARMExtraInterpreter (line 131) | class ARMExtraInterpreter(ExtraInterpreter): method __init__ (line 134) | def __init__(self, target_desc: TargetDesc, model: UnicornModel): method load_test_case (line 139) | def load_test_case(self, test_case: TestCaseProgram) -> None: method load_input (line 143) | def load_input(self, input_: InputData) -> None: method interpret_mem_access (line 146) | def interpret_mem_access(self, access: int, address: int, size: int, v... method _interpret_macro (line 150) | def _interpret_macro(self, macro: Instruction, pc: int) -> None: method _emulate_vm_execution (line 153) | def _emulate_vm_execution(self, address: int) -> None: method _emulate_userspace_execution (line 156) | def _emulate_userspace_execution(self, address: int) -> None: class _MacroInterpreterCommon (line 167) | class _MacroInterpreterCommon: method __init__ (line 180) | def __init__(self, model: UnicornModel, target_desc: TargetDesc): method load_test_case (line 198) | def load_test_case(self, test_case: TestCaseProgram) -> None: method interpret (line 209) | def interpret(self, macro: Instruction, pc: int) -> None: method _get_macro_args (line 225) | def _get_macro_args(self, section_id: int, section_offset: int) -> Tup... method _find_function_by_id (line 235) | def _find_function_by_id(self, function_id: int) -> SymbolTableEntry: method _macro_measurement_start (line 241) | def _macro_measurement_start(self, _: int, __: int, ___: int, ____: in... method _macro_measurement_end (line 245) | def _macro_measurement_end(self, _: int, __: int, ___: int, ____: int)... method _macro_switch (line 249) | def _macro_switch(self, section_id: int, function_id: int, _: int, __:... class _X86MacroInterpreter (line 273) | class _X86MacroInterpreter(_MacroInterpreterCommon): method __init__ (line 278) | def __init__(self, model: UnicornModel, target_desc: TargetDesc): method load_test_case (line 297) | def load_test_case(self, test_case: TestCaseProgram) -> None: method _macro_set_k2u_target (line 301) | def _macro_set_k2u_target(self, section_id: int, function_id: int, _: ... method _macro_switch_k2u (line 310) | def _macro_switch_k2u(self, section_id: int, _: int, __: int, ___: int... method _macro_set_u2k_target (line 333) | def _macro_set_u2k_target(self, section_id: int, function_id: int, _: ... method _macro_switch_u2k (line 346) | def _macro_switch_u2k(self, section_id: int, _: int, __: int, ___: int... method _macro_switch_h2g (line 364) | def _macro_switch_h2g(self, section_id: int, _: int, __: int, ___: int... method _macro_switch_g2h (line 386) | def _macro_switch_g2h(self, section_id: int, _: int, __: int, ___: int... method _macro_set_h2g_target (line 405) | def _macro_set_h2g_target(self, section_id: int, function_id: int, _: ... method _macro_set_g2h_target (line 411) | def _macro_set_g2h_target(self, section_id: int, function_id: int, _: ... method _macro_landing_k2u (line 417) | def _macro_landing_k2u(self, _: int, __: int, ___: int, ____: int) -> ... method _macro_landing_u2k (line 421) | def _macro_landing_u2k(self, _: int, __: int, ___: int, ____: int) -> ... method _macro_landing_h2g (line 425) | def _macro_landing_h2g(self, _: int, __: int, ___: int, ____: int) -> ... method _macro_landing_g2h (line 428) | def _macro_landing_g2h(self, _: int, __: int, ___: int, ____: int) -> ... method _macro_set_data_permissions (line 431) | def _macro_set_data_permissions(self, actor_id: int, must_set: int, mu... class _ARM64MacroInterpreter (line 436) | class _ARM64MacroInterpreter(_MacroInterpreterCommon): method __init__ (line 439) | def __init__(self, model: UnicornModel, target_desc: TargetDesc): class _X86VMInterpreter (line 450) | class _X86VMInterpreter: method __init__ (line 465) | def __init__(self, model: UnicornModel, target_desc: TargetDesc) -> None: method reset (line 470) | def reset(self) -> None: method interpret (line 474) | def interpret(self, inst: Instruction, address: int) -> None: method _emulate_move (line 504) | def _emulate_move(self, inst: Instruction, _: int) -> bool: class _X86UserspaceInterpreter (line 512) | class _X86UserspaceInterpreter(_X86VMInterpreter): class _FaultInterpreterCommon (line 534) | class _FaultInterpreterCommon(ABC): method __init__ (line 546) | def __init__(self, model: UnicornModel, target_desc: TargetDesc): method load_test_case (line 551) | def load_test_case(self, test_case: TestCaseProgram) -> None: method load_input (line 579) | def load_input(self, _: InputData) -> None: method induce_user_faults (line 590) | def induce_user_faults(self, current_actor: Actor, address: int) -> None: method _page_is_readable (line 615) | def _page_is_readable(self, pet: PTEMask) -> bool: method _page_is_writable (line 619) | def _page_is_writable(self, pet: PTEMask) -> bool: method _page_is_user_accessible (line 623) | def _page_is_user_accessible(self, pet: PTEMask) -> bool: method _extended_page_is_readable (line 627) | def _extended_page_is_readable(self, epet: PTEMask) -> bool: method _extended_page_is_writable (line 631) | def _extended_page_is_writable(self, epet: PTEMask) -> bool: class _X86FaultInterpreter (line 635) | class _X86FaultInterpreter(_FaultInterpreterCommon): method _page_is_readable (line 638) | def _page_is_readable(self, pet: PTEMask) -> bool: method _page_is_writable (line 648) | def _page_is_writable(self, pet: PTEMask) -> bool: method _page_is_user_accessible (line 656) | def _page_is_user_accessible(self, pet: PTEMask) -> bool: method _extended_page_is_readable (line 662) | def _extended_page_is_readable(self, epet: PTEMask) -> bool: method _extended_page_is_writable (line 672) | def _extended_page_is_writable(self, epet: PTEMask) -> bool: class _ARM64FaultInterpreter (line 681) | class _ARM64FaultInterpreter(_FaultInterpreterCommon): method _page_is_readable (line 684) | def _page_is_readable(self, pet: PTEMask) -> bool: method _page_is_writable (line 690) | def _page_is_writable(self, pet: PTEMask) -> bool: method _page_is_user_accessible (line 696) | def _page_is_user_accessible(self, pet: PTEMask) -> bool: method _extended_page_is_readable (line 699) | def _extended_page_is_readable(self, epet: PTEMask) -> bool: method _extended_page_is_writable (line 702) | def _extended_page_is_writable(self, epet: PTEMask) -> bool: method emulate_crossing_fault (line 705) | def emulate_crossing_fault(self, access: int, address: int, size: int)... FILE: rvzr/model_unicorn/model.py class _Dispatcher (line 57) | class _Dispatcher: method __init__ (line 67) | def __init__(self, taint_tracker: UnicornTaintTracker, speculator: Uni... method test_case_load_dispatch (line 76) | def test_case_load_dispatch(self, test_case: TestCaseProgram) -> None: method execution_start_dispatch (line 83) | def execution_start_dispatch(self, input_: InputData) -> None: method instruction_dispatch (line 90) | def instruction_dispatch(self, address: int, size: int, _: UnicornModel, method mem_access_dispatch (line 105) | def mem_access_dispatch(self, access: int, address: int, size: int, va... function _instruction_hook (line 120) | def _instruction_hook(_: Uc, address: int, size: int, model: UnicornMode... function _mem_access_hook (line 125) | def _mem_access_hook(_: Uc, access: int, address: int, size: int, value:... function _mem_unmapped_hook (line 131) | def _mem_unmapped_hook(_: Uc, access: int, address: int, size: int, valu... function _err_to_str (line 162) | def _err_to_str(errno: int) -> str: class UnicornModel (line 171) | class UnicornModel(Model, ABC): method __init__ (line 202) | def __init__(self, method load_test_case (line 239) | def load_test_case(self, test_case: TestCaseProgram) -> None: method trace_test_case (line 280) | def trace_test_case(self, inputs: List[InputData], nesting: int) -> Li... method trace_test_case_with_taints (line 292) | def trace_test_case_with_taints(self, inputs: List[InputData], method instruction_callback (line 308) | def instruction_callback(self, address: int, size: int) -> None: method mem_access_callback (line 327) | def mem_access_callback(self, access: int, address: int, size: int, va... method do_soft_fault (line 335) | def do_soft_fault(self, errno: int) -> None: method set_faulty_area_rw (line 344) | def set_faulty_area_rw(self, actor_id: int, r: bool, w: bool) -> None: method report_coverage (line 357) | def report_coverage(self, path: str) -> None: method print_registers (line 362) | def print_registers(self, oneline: bool = False) -> None: method _execute_test_case_with_inputs (line 367) | def _execute_test_case_with_inputs( method _run_state_machine (line 401) | def _run_state_machine(self) -> None: method _handle_fault (line 468) | def _handle_fault(self) -> int: method _patch_context_after_fault (line 508) | def _patch_context_after_fault(self) -> None: method _load_input (line 522) | def _load_input(self, input_: InputData) -> None: class X86UnicornModel (line 529) | class X86UnicornModel(UnicornModel): method __init__ (line 532) | def __init__(self, method _load_input (line 549) | def _load_input(self, input_: InputData) -> None: method print_registers (line 617) | def print_registers(self, oneline: bool = False) -> None: class ARM64UnicornModel (line 678) | class ARM64UnicornModel(UnicornModel): method __init__ (line 681) | def __init__(self, method _load_input (line 698) | def _load_input(self, input_: InputData) -> None: method print_registers (line 758) | def print_registers(self, oneline: bool = False) -> None: FILE: rvzr/model_unicorn/speculator_abc.py class UnicornSpeculator (line 38) | class UnicornSpeculator(ABC): method __init__ (line 64) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method in_speculation (line 75) | def in_speculation(self) -> bool: method set_max_nesting (line 79) | def set_max_nesting(self, max_nesting: int) -> None: method nesting (line 83) | def nesting(self) -> int: method reset (line 87) | def reset(self) -> None: method rollback (line 96) | def rollback(self) -> int: method handle_instruction (line 122) | def handle_instruction(self, address: int, size: int) -> None: method handle_mem_access (line 144) | def handle_mem_access(self, access: int, address: int, size: int, valu... method handle_fault (line 162) | def handle_fault(self, errno: int) -> int: method _checkpoint (line 174) | def _checkpoint(self, next_instruction_addr: int, include_current_inst... method _max_nesting_reached (line 189) | def _max_nesting_reached(self) -> bool: method _speculate_instruction (line 193) | def _speculate_instruction(self, address: int, size: int) -> None: method _speculate_mem_access (line 196) | def _speculate_mem_access(self, access: int, address: int, size: int, ... method _speculate_fault (line 199) | def _speculate_fault(self, _: int) -> int: FILE: rvzr/model_unicorn/speculators_basic.py class SeqSpeculator (line 38) | class SeqSpeculator(UnicornSpeculator): class X86CondSpeculator (line 53) | class X86CondSpeculator(UnicornSpeculator): method __init__ (line 159) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _speculate_instruction (line 164) | def _speculate_instruction(self, address: int, size: int) -> None: method decode (line 197) | def decode(self, code: bytearray, flags: int, rcx: int) -> Tuple[int, ... class ARM64CondSpeculator (line 211) | class ARM64CondSpeculator(UnicornSpeculator): method __init__ (line 217) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _speculate_instruction (line 222) | def _speculate_instruction(self, address: int, size: int) -> None: method decode (line 243) | def decode(self, code: bytearray, flags: int) -> Tuple[int, bool]: method _decode_b_cond (line 260) | def _decode_b_cond(self, instruction: int, flags: int) -> Tuple[int, b... method _decode_cb_tb (line 290) | def _decode_cb_tb(self, instruction: int, first_byte: int) -> Tuple[in... method _twos_complement (line 335) | def _twos_complement(n: int, n_bits: int) -> int: class StoreBpasSpeculator (line 346) | class StoreBpasSpeculator(UnicornSpeculator): method rollback (line 353) | def rollback(self) -> int: method reset (line 358) | def reset(self) -> None: method _speculate_mem_access (line 362) | def _speculate_mem_access(self, access: int, address: int, size: int, ... method _speculate_instruction (line 385) | def _speculate_instruction(self, address: int, _: int) -> None: class X86CondBpasSpeculator (line 407) | class X86CondBpasSpeculator(X86CondSpeculator, StoreBpasSpeculator): method _speculate_mem_access (line 412) | def _speculate_mem_access(self, access: int, address: int, size: int, ... method _speculate_instruction (line 415) | def _speculate_instruction(self, address: int, size: int) -> None: FILE: rvzr/model_unicorn/speculators_fault.py class FaultSpeculator (line 31) | class FaultSpeculator(UnicornSpeculator, ABC): method _fault_triggers_speculation (line 44) | def _fault_triggers_speculation(self, errno: int) -> bool: method _get_rollback_address (line 55) | def _get_rollback_address(self) -> int: method _speculate_instruction (line 58) | def _speculate_instruction(self, address: int, size: int) -> None: method _restore_faulty_page_permissions (line 61) | def _restore_faulty_page_permissions(self, actor_id: ActorID) -> None: class SequentialAssistSpeculator (line 71) | class SequentialAssistSpeculator(FaultSpeculator): method __init__ (line 74) | def __init__( method _speculate_fault (line 83) | def _speculate_fault(self, errno: int) -> int: class UnicornDEH (line 95) | class UnicornDEH(FaultSpeculator, ABC): method __init__ (line 111) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _checkpoint (line 118) | def _checkpoint(self, next_instruction_addr: int, include_current_inst... method rollback (line 122) | def rollback(self) -> int: method _speculate_fault (line 126) | def _speculate_fault(self, errno: int) -> int: method _speculate_instruction (line 150) | def _speculate_instruction(self, address: int, size: int) -> None: method _handle_isa_specific_corner_cases (line 228) | def _handle_isa_specific_corner_cases(self, instruction: Instruction, method _arm64_emulate_fault_with_post_increment (line 233) | def _arm64_emulate_fault_with_post_increment(self) -> None: class X86UnicornDEH (line 237) | class X86UnicornDEH(UnicornDEH): method _handle_isa_specific_corner_cases (line 247) | def _handle_isa_specific_corner_cases(self, instruction: Instruction, class ARMUnicornDEH (line 302) | class ARMUnicornDEH(UnicornDEH): method _handle_isa_specific_corner_cases (line 308) | def _handle_isa_specific_corner_cases(self, instruction: Instruction, method _arm64_emulate_fault_with_post_increment (line 313) | def _arm64_emulate_fault_with_post_increment(self) -> None: class X86UnicornNull (line 350) | class X86UnicornNull(FaultSpeculator): method __init__ (line 370) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method reset (line 375) | def reset(self) -> None: method rollback (line 390) | def rollback(self) -> int: method _speculate_mem_access (line 395) | def _speculate_mem_access(self, access: int, address: int, size: int, ... method _speculate_fault (line 403) | def _speculate_fault(self, errno: int) -> int: method _speculate_instruction (line 429) | def _speculate_instruction(self, address: int, size: int) -> None: class X86UnicornNullAssist (line 454) | class X86UnicornNullAssist(X86UnicornNull): method _get_rollback_address (line 459) | def _get_rollback_address(self) -> int: class X86Meltdown (line 463) | class X86Meltdown(FaultSpeculator): method __init__ (line 468) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _speculate_fault (line 473) | def _speculate_fault(self, errno: int) -> int: class X86NonCanonicalAddress (line 485) | class X86NonCanonicalAddress(FaultSpeculator): method __init__ (line 494) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _speculate_fault (line 499) | def _speculate_fault(self, errno: int) -> int: method _speculate_instruction (line 507) | def _speculate_instruction(self, address: int, size: int) -> None: method reset (line 544) | def reset(self) -> None: FILE: rvzr/model_unicorn/speculators_vs.py class _TaintedValue (line 33) | class _TaintedValue(NamedTuple): class _VspecBaseSpeculator (line 54) | class _VspecBaseSpeculator(FaultSpeculator, ABC): method __init__ (line 91) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _load_input (line 109) | def _load_input(self, input_: InputData) -> None: method _assemble_reg_values (line 130) | def _assemble_reg_values(self, regs: Set[str]) -> Tuple[Taint, bool]: method _set_taint (line 159) | def _set_taint(self, reg: str, taint: Taint) -> None: method _update_reg_taints (line 166) | def _update_reg_taints(self) -> None: method _get_curr_load_taint (line 202) | def _get_curr_load_taint(self) -> _TaintedValue: method _speculate_fault (line 210) | def _speculate_fault(self, errno: int) -> int: method _get_next_instruction (line 262) | def _get_next_instruction(self) -> int: method _speculate_instruction (line 268) | def _speculate_instruction(self, address: int, size: int) -> None: method _speculate_mem_access (line 376) | def _speculate_mem_access(self, access: int, address: int, size: int, ... method _checkpoint (line 447) | def _checkpoint(self, next_instruction_addr: int, include_current_inst... method rollback (line 453) | def rollback(self) -> int: method _get_rollback_address (line 459) | def _get_rollback_address(self) -> int: class VspecDIVSpeculator (line 464) | class VspecDIVSpeculator(_VspecBaseSpeculator): method __init__ (line 467) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, class VspecMemoryFaultsSpeculator (line 474) | class VspecMemoryFaultsSpeculator(_VspecBaseSpeculator): method __init__ (line 480) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _get_curr_load_taint (line 486) | def _get_curr_load_taint(self) -> _TaintedValue: method _speculate_instruction (line 493) | def _speculate_instruction(self, address: int, size: int) -> None: method _get_next_instruction (line 511) | def _get_next_instruction(self) -> int: class VspecMemoryAssistsSpeculator (line 525) | class VspecMemoryAssistsSpeculator(VspecMemoryFaultsSpeculator): method __init__ (line 528) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method rollback (line 533) | def rollback(self) -> int: method _get_rollback_address (line 541) | def _get_rollback_address(self) -> int: class VspecGPSpeculator (line 547) | class VspecGPSpeculator(_VspecBaseSpeculator, X86NonCanonicalAddress): method __init__ (line 553) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _speculate_fault (line 566) | def _speculate_fault(self, errno: int) -> int: method _speculate_mem_access (line 622) | def _speculate_mem_access(self, access: int, address: int, size: int, ... method _speculate_instruction (line 631) | def _speculate_instruction(self, address: int, size: int) -> None: method _noncanonical_to_canonical (line 636) | def _noncanonical_to_canonical(self, address: int) -> int: method _get_rollback_address (line 643) | def _get_rollback_address(self) -> int: method reset (line 646) | def reset(self) -> None: class VspecAllSpeculator (line 653) | class VspecAllSpeculator(_VspecBaseSpeculator): method _speculate_fault (line 661) | def _speculate_fault(self, errno: int) -> int: class VspecAllDIVSpeculator (line 694) | class VspecAllDIVSpeculator(VspecAllSpeculator): method __init__ (line 697) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, class VspecAllMemoryFaultsSpeculator (line 704) | class VspecAllMemoryFaultsSpeculator(VspecAllSpeculator): method __init__ (line 710) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method _speculate_instruction (line 716) | def _speculate_instruction(self, address: int, size: int) -> None: method _get_next_instruction (line 735) | def _get_next_instruction(self) -> int: class VspecAllMemoryAssistsSpeculator (line 749) | class VspecAllMemoryAssistsSpeculator(VspecAllSpeculator): method __init__ (line 752) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method rollback (line 757) | def rollback(self) -> int: method _get_rollback_address (line 764) | def _get_rollback_address(self) -> int: FILE: rvzr/model_unicorn/taint_tracker.py class UnicornTaintTracker (line 36) | class UnicornTaintTracker: method __init__ (line 66) | def __init__(self, bases: BaseAddrTuple, target_desc: TargetDesc): method set_enable_tracking (line 88) | def set_enable_tracking(self, enable: bool) -> None: method reset (line 94) | def reset(self) -> None: method checkpoint (line 103) | def checkpoint(self, include_current_inst: bool) -> None: method rollback (line 115) | def rollback(self) -> None: method track_instruction (line 130) | def track_instruction(self, instruction: Instruction) -> None: method track_memory_access (line 157) | def track_memory_access(self, address: int, size: int, is_write: bool)... method _finalize_instruction (line 182) | def _finalize_instruction(self) -> None: method taint (line 217) | def taint(self, value_type: TAINTED_VALUE_TYPE) -> None: method taint_actors (line 249) | def taint_actors(self, actor_ids: List[int]) -> None: method get_taint (line 262) | def get_taint(self, n_actors: int) -> InputTaint: class _TrackedInstruction (line 330) | class _TrackedInstruction: method __init__ (line 335) | def __init__(self, instruction: Instruction) -> None: method parse_static_operands (line 349) | def parse_static_operands(self, reg_normalizer: Dict[str, str]) -> None: class _Dependencies (line 394) | class _Dependencies: method __init__ (line 400) | def __init__(self) -> None: method add_dependencies (line 405) | def add_dependencies(self, tracked_inst: _TrackedInstruction) -> None: method remove_overwritten_dependencies (line 448) | def remove_overwritten_dependencies(self, tracked_inst: _TrackedInstru... FILE: rvzr/model_unicorn/tracer.py class UnicornTracer (line 32) | class UnicornTracer(ABC): method __init__ (line 45) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method load_test_case (line 55) | def load_test_case(self, test_case: TestCaseProgram) -> None: method reset (line 59) | def reset(self, input_: InputData) -> None: method get_trace (line 68) | def get_trace(self) -> CTrace: method observe_mem_access (line 84) | def observe_mem_access(self, access: int, address: int, size: int, val... method observe_instruction (line 94) | def observe_instruction(self, pc: int, size: int) -> None: method _add_mem_address_to_trace (line 105) | def _add_mem_address_to_trace(self, address: int) -> None: method _add_pc_to_trace (line 111) | def _add_pc_to_trace(self, address: int) -> None: method _add_dependencies_to_trace (line 117) | def _add_dependencies_to_trace(self, dependency_hash: int) -> None: method _add_value_to_trace (line 123) | def _add_value_to_trace(self, val: int) -> None: class NoneTracer (line 132) | class NoneTracer(UnicornTracer): method observe_mem_access (line 138) | def observe_mem_access(self, access: int, address: int, size: int, val... method observe_instruction (line 141) | def observe_instruction(self, pc: int, size: int) -> None: method get_trace (line 144) | def get_trace(self) -> CTrace: class PCTracer (line 148) | class PCTracer(UnicornTracer): method observe_instruction (line 160) | def observe_instruction(self, pc: int, size: int) -> None: class MemoryTracer (line 165) | class MemoryTracer(UnicornTracer): method observe_mem_access (line 177) | def observe_mem_access(self, access: int, address: int, size: int, val... class L1DTracer (line 182) | class L1DTracer(MemoryTracer): method get_trace (line 188) | def get_trace(self) -> CTrace: class CTTracer (line 194) | class CTTracer(PCTracer): method observe_mem_access (line 199) | def observe_mem_access(self, access: int, address: int, size: int, val... class TruncatedCTTracer (line 204) | class TruncatedCTTracer(UnicornTracer): method observe_mem_access (line 209) | def observe_mem_access(self, access: int, address: int, size: int, val... method observe_instruction (line 213) | def observe_instruction(self, pc: int, size: int) -> None: class TruncatedCTWithOverflowsTracer (line 218) | class TruncatedCTWithOverflowsTracer(UnicornTracer): method observe_mem_access (line 224) | def observe_mem_access(self, access: int, address: int, size: int, val... method observe_instruction (line 230) | def observe_instruction(self, pc: int, size: int) -> None: class CTNonSpecStoreTracer (line 237) | class CTNonSpecStoreTracer(PCTracer): method observe_mem_access (line 242) | def observe_mem_access(self, access: int, address: int, size: int, val... class ArchTracer (line 249) | class ArchTracer(CTTracer): method reset (line 260) | def reset(self, input_: InputData) -> None: method observe_instruction (line 264) | def observe_instruction(self, pc: int, size: int) -> None: method observe_mem_access (line 275) | def observe_mem_access(self, access: int, address: int, size: int, val... class ActorNITracer (line 286) | class ActorNITracer(CTTracer): method __init__ (line 293) | def __init__(self, target_desc: TargetDesc, model: UnicornModel, method reset (line 302) | def reset(self, input_: InputData) -> None: method get_trace (line 309) | def get_trace(self) -> CTrace: method _add_observer_traces (line 315) | def _add_observer_traces(self, ctrace: CTrace) -> CTrace: FILE: rvzr/postprocessing/analysis_passes.py function _get_seq_model (line 27) | def _get_seq_model(data_start: int, code_start: int) -> uc_model.Unicorn... class AddViolationCommentsPass (line 52) | class AddViolationCommentsPass(BaseInstructionMinimizationPass): method set_violation (line 60) | def set_violation(self, violation: Violation) -> None: method run (line 63) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 143) | def modify_instruction(self, _: List[str], __: int) -> List[str]: method verify_modification (line 146) | def verify_modification(self, _: TestCaseProgram, __: List[InputData])... FILE: rvzr/postprocessing/input_passes.py class BaseInputMinimizationPass (line 29) | class BaseInputMinimizationPass(BaseMinimizationPass): method run (line 33) | def run(self, test_case: TestCaseProgram, org_inputs: List[InputData], class InputSequenceMinimizationPass (line 43) | class InputSequenceMinimizationPass(BaseInputMinimizationPass): method run (line 50) | def run(self, test_case: TestCaseProgram, org_inputs: List[InputData], class DifferentialInputMinimizerPass (line 97) | class DifferentialInputMinimizerPass(BaseInputMinimizationPass): method run (line 111) | def run(self, test_case: TestCaseProgram, _: List[InputData], method _set_pass_context (line 146) | def _set_pass_context(self, test_case: TestCaseProgram, org_violation:... method _reset_pass_context (line 171) | def _reset_pass_context(self) -> None: method _process_actor (line 178) | def _process_actor(self, actor_id: int) -> None: method _process_block (line 208) | def _process_block(self, actor_id: int, region_name: str, block_start:... FILE: rvzr/postprocessing/instruction_passes.py class BaseInstructionMinimizationPass (line 29) | class BaseInstructionMinimizationPass(BaseMinimizationPass): method run (line 38) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 42) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 49) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... method minimization_loop (line 55) | def minimization_loop(self, method set_violation (line 122) | def set_violation(self, violation: Violation) -> None: class InstructionRemovalPass (line 126) | class InstructionRemovalPass(BaseInstructionMinimizationPass): method run (line 133) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 151) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 154) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... class InstructionSimplificationPass (line 158) | class InstructionSimplificationPass(BaseInstructionMinimizationPass): method run (line 227) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 241) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 253) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... class ConstantSimplificationPass (line 257) | class ConstantSimplificationPass(BaseInstructionMinimizationPass): method __init__ (line 264) | def __init__(self, fuzzer: Fuzzer, instruction_set_spec: InstructionSet, method run (line 280) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 290) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 305) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... class MaskSimplificationPass (line 309) | class MaskSimplificationPass(BaseInstructionMinimizationPass): method run (line 333) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 343) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 361) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... class NopReplacementPass (line 365) | class NopReplacementPass(BaseInstructionMinimizationPass): method __init__ (line 387) | def __init__(self, fuzzer: Fuzzer, instruction_set_spec: InstructionSet, method run (line 402) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 432) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 461) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... class LabelRemovalPass (line 465) | class LabelRemovalPass(BaseInstructionMinimizationPass): method run (line 475) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 510) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 513) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... class FenceInsertionPass (line 517) | class FenceInsertionPass(BaseInstructionMinimizationPass): method __init__ (line 524) | def __init__(self, fuzzer: Fuzzer, instruction_set_spec: InstructionSet, method run (line 533) | def run(self, test_case: TestCaseProgram, inputs: List[InputData]) -> ... method modify_instruction (line 543) | def modify_instruction(self, instructions: List[str], cursor: int) -> ... method verify_modification (line 549) | def verify_modification(self, test_case: TestCaseProgram, inputs: List... FILE: rvzr/postprocessing/minimizer.py class PassDesc (line 35) | class PassDesc(NamedTuple): class Minimizer (line 41) | class Minimizer: method __init__ (line 57) | def __init__(self, fuzzer: Fuzzer, instruction_set_spec: InstructionSet): method __del__ (line 81) | def __del__(self) -> None: method run (line 86) | def run(self, test_case_asm: str, n_inputs: int, test_case_outfile: st... method _reset (line 171) | def _reset(self, enabled_passes: Dict[str, Any]) -> None: method _reproduce_org_violation (line 186) | def _reproduce_org_violation(self, test_case: TestCaseProgram, method _set_passes (line 197) | def _set_passes(self, enabled_passes: Dict[str, Any]) -> None: method _run_input_passes (line 214) | def _run_input_passes(self, test_case: TestCaseProgram, inputs: List[I... method _run_instruction_passes (line 250) | def _run_instruction_passes(self, test_case: TestCaseProgram, inputs: ... method _run_analysis_passes (line 267) | def _run_analysis_passes(self, test_case: TestCaseProgram, inputs: Lis... FILE: rvzr/postprocessing/pass_abc.py class BaseMinimizationPass (line 22) | class BaseMinimizationPass(abc.ABC): method __init__ (line 30) | def __init__(self, fuzzer: Fuzzer, instruction_set_spec: InstructionSet, method set_ignore_list (line 40) | def set_ignore_list(self, ignore_list: List[int]) -> None: method _get_test_case_from_instructions (line 44) | def _get_test_case_from_instructions(self, method _check_for_violation (line 68) | def _check_for_violation(self, test_case: TestCaseProgram, inputs: Lis... FILE: rvzr/postprocessing/progress_printer.py class ProgressPrinter (line 8) | class ProgressPrinter(): method pass_start (line 20) | def pass_start(self, label: str, offset: int = 2) -> None: method pass_finish (line 28) | def pass_finish(self) -> None: method pass_msg (line 32) | def pass_msg(self, msg: str) -> None: method next (line 37) | def next(self, success: bool) -> None: method global_msg (line 53) | def global_msg(self, msg: str) -> None: FILE: rvzr/sandbox.py class DataArea (line 29) | class DataArea(Enum): class CodeArea (line 45) | class CodeArea(Enum): class SandboxLayout (line 57) | class SandboxLayout: method data_area_size (line 97) | def data_area_size(cls, area: DataArea) -> int: method data_area_offset (line 106) | def data_area_offset(cls, area: DataArea) -> int: method data_size_per_actor (line 121) | def data_size_per_actor(cls) -> int: method code_area_size (line 129) | def code_area_size(cls, area: CodeArea) -> int: method code_area_offset (line 138) | def code_area_offset(cls, area: CodeArea) -> int: method code_size_per_actor (line 149) | def code_size_per_actor(cls) -> int: method __init__ (line 159) | def __init__(self, bases: BaseAddrTuple, n_actors: int): method code_start (line 186) | def code_start(self) -> CodeAddr: method code_end (line 190) | def code_end(self) -> CodeAddr: method data_start (line 194) | def data_start(self) -> DataAddr: method data_end (line 198) | def data_end(self) -> DataAddr: method get_data_addr (line 202) | def get_data_addr(self, area: DataArea, actor_id: int) -> DataAddr: method get_code_addr (line 212) | def get_code_addr(self, area: CodeArea, actor_id: int) -> CodeAddr: method get_exit_addr (line 222) | def get_exit_addr(self, test_case: TestCaseProgram) -> CodeAddr: method is_data_addr (line 233) | def is_data_addr(self, addr: DataAddr) -> bool: method is_code_addr (line 241) | def is_code_addr(self, addr: CodeAddr) -> bool: method data_addr_to_offset (line 249) | def data_addr_to_offset(self, addr: DataAddr) -> DataAddr: method code_addr_to_offset (line 257) | def code_addr_to_offset(self, addr: CodeAddr) -> CodeAddr: method code_addr_to_actor_id (line 265) | def code_addr_to_actor_id(self, addr: CodeAddr) -> int: method data_addr_to_actor_id (line 273) | def data_addr_to_actor_id(self, addr: DataAddr) -> int: FILE: rvzr/stats.py class FuzzingStats (line 11) | class FuzzingStats: method __init__ (line 36) | def __init__(self) -> None: method __str__ (line 39) | def __str__(self) -> str: method get_brief (line 65) | def get_brief(self) -> str: FILE: rvzr/target_desc.py class CPUDesc (line 35) | class CPUDesc(NamedTuple): class MacroSpec (line 44) | class MacroSpec(NamedTuple): class UnicornTargetDesc (line 52) | class UnicornTargetDesc: # pylint: disable=too-few-public-methods class TargetDesc (line 86) | class TargetDesc(ABC): method get_vendor (line 190) | def get_vendor(cls) -> Vendor: method is_unconditional_branch (line 203) | def is_unconditional_branch(inst: Instruction) -> bool: method is_call (line 208) | def is_call(inst: Instruction) -> bool: method get_macro_spec_from_type (line 211) | def get_macro_spec_from_type(self, type_: int) -> MacroSpec: method _filter_blocked_registers (line 222) | def _filter_blocked_registers(self) -> Dict[RegSize, List[str]]: FILE: rvzr/tc_components/actor.py class ActorMode (line 28) | class ActorMode(Enum): class ActorPL (line 34) | class ActorPL(Enum): function _create_pte_mask (line 43) | def _create_pte_mask(pte_descriptor: _PTEDescriptor, page_properties_to_... class Actor (line 132) | class Actor: method __init__ (line 148) | def __init__(self, method from_dict (line 164) | def from_dict(cls, actor_dict: ActorConf, target_desc: TargetDesc) -> ... method create_main (line 211) | def create_main(cls) -> 'Actor': method assign_code_section (line 220) | def assign_code_section(self, section: CodeSection) -> None: method code_section (line 225) | def code_section(self) -> CodeSection: method get_id (line 230) | def get_id(self) -> ActorID: FILE: rvzr/tc_components/instruction.py class Operand (line 24) | class Operand(ABC): method __init__ (line 43) | def __init__(self, value: str, src: bool, dest: bool): method from_fixed_spec (line 50) | def from_fixed_spec(cls, spec: OperandSpec) -> AnyOperand: # pylint: ... class RegisterOp (line 83) | class RegisterOp(Operand): method __init__ (line 88) | def __init__(self, value: str, width: int, src: bool, dest: bool): class MemoryOp (line 94) | class MemoryOp(Operand): method __init__ (line 99) | def __init__(self, address: str, width: int, src: bool, dest: bool) ->... method get_base_register (line 103) | def get_base_register(self) -> Optional[RegisterOp]: class ImmediateOp (line 124) | class ImmediateOp(Operand): method __init__ (line 129) | def __init__(self, value: str, width: int) -> None: class LabelOp (line 134) | class LabelOp(Operand): method __init__ (line 137) | def __init__(self, value: str) -> None: class AgenOp (line 141) | class AgenOp(Operand): method __init__ (line 146) | def __init__(self, value: str, width: int) -> None: class FlagsOp (line 151) | class FlagsOp(Operand): method __init__ (line 157) | def __init__(self, value: Tuple[str, ...]) -> None: method __str__ (line 162) | def __str__(self) -> str: method _get_flag_list (line 174) | def _get_flag_list(self, types: List[FlagType]) -> List[str]: method get_flags_by_type (line 186) | def get_flags_by_type(self, type_: Literal['read', 'write', 'overwrite... class CondOp (line 208) | class CondOp(Operand): method __init__ (line 211) | def __init__(self, value: str) -> None: function copy_op_with_value_modification (line 223) | def copy_op_with_value_modification(op: _ValueModifiableOperand, function copy_op_with_flow_modification (line 246) | def copy_op_with_flow_modification(op: _SrcDestModifiableOperand, class Instruction (line 271) | class Instruction: method __init__ (line 317) | def __init__(self, method from_spec (line 333) | def from_spec(cls: Type[Instruction], method __str__ (line 355) | def __str__(self) -> str: method add_op (line 365) | def add_op(self, op: AnyOperand, implicit: bool = False) -> Instruction: method has_mem_operand (line 378) | def has_mem_operand(self, include_implicit: bool) -> bool: method has_write (line 393) | def has_write(self, include_implicit: bool = False) -> bool: method has_read (line 408) | def has_read(self, include_implicit: bool = False) -> bool: method get_all_operands (line 423) | def get_all_operands(self) -> List[AnyOperand]: method get_src_operands (line 431) | def get_src_operands(self, include_implicit: bool = False) -> List[Any... method get_dest_operands (line 447) | def get_dest_operands(self, include_implicit: bool = False) -> List[An... method get_mem_operands (line 463) | def get_mem_operands(self, method get_flags_operand (line 484) | def get_flags_operand(self) -> Optional[FlagsOp]: method get_reg_operands (line 497) | def get_reg_operands(self, include_implicit: bool = False) -> List[Reg... method get_cond_operand (line 513) | def get_cond_operand(self) -> Optional[CondOp]: method get_label_operand (line 524) | def get_label_operand(self) -> Optional[LabelOp]: method get_imm_operands (line 535) | def get_imm_operands(self, include_implicit: bool = False) -> List[Imm... method get_agen_operands (line 551) | def get_agen_operands(self) -> List[AgenOp]: method assign_line_num (line 565) | def assign_line_num(self, line_num: int) -> None: method line_num (line 570) | def line_num(self) -> int: method assign_binary_properties (line 577) | def assign_binary_properties(self, section_id: int, offset: int, size:... method section_id (line 590) | def section_id(self) -> int: method section_offset (line 596) | def section_offset(self) -> int: method size (line 602) | def size(self) -> int: function copy_inst_with_modification (line 609) | def copy_inst_with_modification(instruction: Instruction, FILE: rvzr/tc_components/test_case_binary.py class SymbolTableEntry (line 24) | class SymbolTableEntry(NamedTuple): class TestCaseBinary (line 43) | class TestCaseBinary: method __init__ (line 60) | def __init__(self, obj_path: str, parent: TestCaseProgram): method mark_as_assembled (line 64) | def mark_as_assembled(self) -> None: method to_bytes (line 68) | def to_bytes(self, padded_section_size: int = 0, padding_byte: bytes =... method get_macro_offset (line 102) | def get_macro_offset(self, macro_type: int) -> int: method assign_elf_data (line 115) | def assign_elf_data(self, symbol_table: List[SymbolTableEntry], method symbol_table (line 126) | def symbol_table(self) -> List[SymbolTableEntry]: method instruction_map (line 131) | def instruction_map(self) -> InstructionMap: method save_rcbf (line 136) | def save_rcbf(self, path: str) -> None: FILE: rvzr/tc_components/test_case_code.py class InstructionNode (line 22) | class InstructionNode: method __init__ (line 39) | def __init__(self, instruction: Instruction, parent: BasicBlock): method __str__ (line 45) | def __str__(self) -> str: class BasicBlock (line 49) | class BasicBlock: method __init__ (line 70) | def __init__(self, name: str, parent: Optional[Function] = None, is_ex... method __str__ (line 77) | def __str__(self) -> str: method __len__ (line 80) | def __len__(self) -> int: method __iter__ (line 91) | def __iter__(self) -> GeneratorType[Instruction, None, None]: method iter_nodes (line 98) | def iter_nodes(self) -> GeneratorType[InstructionNode, None, None]: method get_owner (line 105) | def get_owner(self) -> Actor: method insert_after (line 112) | def insert_after(self, position: Optional[InstructionNode], inst: Inst... method insert_before (line 147) | def insert_before(self, position: Optional[InstructionNode], inst: Ins... method delete (line 182) | def delete(self, target: InstructionNode) -> None: method get_first (line 211) | def get_first(self, exclude_macros: bool = False) -> Optional[Instruct... method get_last (line 228) | def get_last(self) -> Optional[InstructionNode]: method find_instruction_node (line 234) | def find_instruction_node(self, inst: Instruction) -> Optional[Instruc... class Function (line 246) | class Function: method __init__ (line 266) | def __init__(self, name: str, parent: CodeSection): method __len__ (line 272) | def __len__(self) -> int: method __iter__ (line 276) | def __iter__(self) -> GeneratorType[BasicBlock, None, None]: method __getitem__ (line 281) | def __getitem__(self, id_: int) -> BasicBlock: method append (line 287) | def append(self, bb: BasicBlock) -> None: method extend (line 294) | def extend(self, bb_list: List[BasicBlock]) -> None: method get_first_bb (line 300) | def get_first_bb(self) -> BasicBlock: method get_exit_bb (line 306) | def get_exit_bb(self) -> BasicBlock: method get_owner (line 314) | def get_owner(self) -> Actor: class _ELFSectionData (line 319) | class _ELFSectionData(TypedDict): class CodeSection (line 326) | class CodeSection: method __init__ (line 346) | def __init__(self, owner: Actor): method __iter__ (line 352) | def __iter__(self) -> GeneratorType[Function, None, None]: method __len__ (line 357) | def __len__(self) -> int: method __getitem__ (line 361) | def __getitem__(self, id_: int) -> Function: method append (line 365) | def append(self, func: Function) -> None: method assign_elf_data (line 371) | def assign_elf_data(self, offset: int, size: int, id_: int) -> None: method get_elf_data (line 379) | def get_elf_data(self) -> _ELFSectionData: class TestCaseProgram (line 392) | class TestCaseProgram: method __init__ (line 406) | def __init__(self, asm_path: str, seed: int = 0): method __len__ (line 414) | def __len__(self) -> int: method __getitem__ (line 418) | def __getitem__(self, id_: int) -> CodeSection: method get_tc_exit_bb (line 422) | def get_tc_exit_bb(self) -> BasicBlock: method __iter__ (line 428) | def __iter__(self) -> GeneratorType[CodeSection, None, None]: method iter_functions (line 433) | def iter_functions(self) -> GeneratorType[Function, None, None]: method iter_basic_blocks (line 439) | def iter_basic_blocks(self) -> GeneratorType[BasicBlock, None, None]: method assign_obj (line 451) | def assign_obj(self, obj_path: str) -> None: method mark_as_assembled (line 461) | def mark_as_assembled(self) -> None: method get_obj (line 467) | def get_obj(self) -> TestCaseBinary: method reassign_asm_file (line 477) | def reassign_asm_file(self, asm_path: str) -> None: method asm_path (line 483) | def asm_path(self) -> str: method save (line 487) | def save(self, path: str) -> None: method add_actor_with_section (line 497) | def add_actor_with_section(self, actor: Actor, allow_overwrite: bool =... method get_actors (line 535) | def get_actors(self, sorted_: bool = False) -> List[Actor]: method find_actor (line 545) | def find_actor(self, method n_actors (line 572) | def n_actors(self) -> int: method get_sections (line 581) | def get_sections(self) -> List[CodeSection]: method find_section (line 585) | def find_section(self, name: str) -> CodeSection: method find_function (line 597) | def find_function(self, name: str) -> Function: FILE: rvzr/tc_components/test_case_data.py class InputData (line 43) | class InputData(UINT_NDARRAY): method __new__ (line 85) | def __new__(cls, n_actors: int = 1) -> InputData: method __array_finalize__ (line 89) | def __array_finalize__(self, obj: Optional[UINT_NDARRAY]) -> None: # ... method data_size_per_actor (line 98) | def data_size_per_actor(cls) -> int: method n_data_entries_per_actor (line 106) | def n_data_entries_per_actor(cls) -> int: method __hash__ (line 119) | def __hash__(self) -> int: # type: ignore method __str__ (line 124) | def __str__(self) -> str: method __repr__ (line 127) | def __repr__(self) -> str: method set_actor_data (line 130) | def set_actor_data(self, actor_id: 'ActorID', data: UINT_NDARRAY) -> N... method save (line 147) | def save(self, path: str) -> None: method load (line 156) | def load(self, path: str) -> None: method linear_view (line 170) | def linear_view(self, actor_id: ActorID) -> UINT_NDARRAY: function save_input_sequence_as_rdbf (line 181) | def save_input_sequence_as_rdbf(inputs: List[InputData], path: str) -> N... class InputTaint (line 225) | class InputTaint(BOOL_NDARRAY): method __new__ (line 237) | def __new__(cls, n_actors: int = 1) -> InputTaint: method __array_finalize__ (line 242) | def __array_finalize__(self, obj: Optional[UINT_NDARRAY]) -> None: # ... method linear_view (line 247) | def linear_view(self, actor_id: 'ActorID') -> BOOL_NDARRAY: method full_linear_view (line 257) | def full_linear_view(self) -> np.ndarray[Tuple[int, ...], np.dtype[np.... method taint_actor_offsets (line 266) | def taint_actor_offsets(self, actor_id: 'ActorID', offsets: List[int])... method taint_offset_from_sandbox_address (line 279) | def taint_offset_from_sandbox_address(cls, sb_address: int) -> int: FILE: rvzr/traces.py class CTraceEntry (line 30) | class CTraceEntry(NamedTuple): class CTrace (line 41) | class CTrace: method empty_trace (line 58) | def empty_trace(cls) -> CTrace: method __init__ (line 62) | def __init__(self, trace: List[CTraceEntry]) -> None: method __str__ (line 70) | def __str__(self) -> str: method full_str (line 86) | def full_str(self, method __eq__ (line 130) | def __eq__(self, other: object) -> bool: method __lt__ (line 135) | def __lt__(self, other: CTrace) -> bool: method __gt__ (line 138) | def __gt__(self, other: CTrace) -> bool: method __len__ (line 141) | def __len__(self) -> int: method __hash__ (line 144) | def __hash__(self) -> int: method is_empty (line 147) | def is_empty(self) -> bool: method get_untyped (line 151) | def get_untyped(self) -> UntypedCTrace: method get_typed (line 157) | def get_typed(self) -> List[CTraceEntry]: method set_printed_as_l1d (line 161) | def set_printed_as_l1d(self, val: bool = True) -> None: class HTrace (line 188) | class HTrace: method empty_trace (line 205) | def empty_trace(cls, type_: HTraceType = "cache") -> HTrace: method invalid_trace (line 210) | def invalid_trace(cls, type_: HTraceType = "cache") -> HTrace: method __init__ (line 215) | def __init__(self, htrace_samples: ArrayOfSamples, type_: HTraceType =... method __str__ (line 229) | def __str__(self) -> str: method full_str (line 232) | def full_str(self, method _full_arch_str (line 256) | def _full_arch_str(self, line_prefix: str) -> str: method _full_tsc_str (line 275) | def _full_tsc_str(self, line_prefix: str) -> str: method _full_cache_str (line 290) | def _full_cache_str(self, line_prefix: str, r1_col: str, r2_col: str, ... method full_pair_str (line 310) | def full_pair_str(self, method _full_tsc_pair_str (line 328) | def _full_tsc_pair_str(self, other: HTrace) -> str: method _full_cache_pair_str (line 346) | def _full_cache_pair_str(self, other: HTrace, r1_col: str, r2_col: str... method __eq__ (line 372) | def __eq__(self, other: object) -> bool: method __len__ (line 377) | def __len__(self) -> int: method __hash__ (line 380) | def __hash__(self) -> int: method merge (line 383) | def merge(self, other: HTrace) -> HTrace: method is_empty (line 392) | def is_empty(self) -> bool: method is_corrupted_or_ignored (line 396) | def is_corrupted_or_ignored(self) -> bool: method get_raw_readings (line 404) | def get_raw_readings(self) -> ArrayOfSamples: method get_raw_traces (line 409) | def get_raw_traces(self) -> npt.NDArray[np.uint64]: method sample_size (line 413) | def sample_size(self) -> int: method get_max_pfc (line 417) | def get_max_pfc(self) -> PFCTuple: class TraceBundle (line 432) | class TraceBundle(NamedTuple): function _default_eq_function (line 447) | def _default_eq_function(htrace1: HTrace, htrace2: HTrace) -> bool: class HardwareEqClass (line 452) | class HardwareEqClass: method __init__ (line 468) | def __init__(self, measurements: List[TraceBundle]) -> None: method build_hw_classes (line 473) | def build_hw_classes( method __len__ (line 515) | def __len__(self) -> int: method __iter__ (line 518) | def __iter__(self) -> Generator[TraceBundle, None, None]: method __getitem__ (line 521) | def __getitem__(self, index: int) -> TraceBundle: method __eq__ (line 524) | def __eq__(self, other: object) -> bool: class ContractEqClass (line 534) | class ContractEqClass: method __init__ (line 551) | def __init__(self, measurements: List[TraceBundle]) -> None: method build_contract_classes (line 560) | def build_contract_classes(cls, measurements: List[TraceBundle]) -> Li... method __len__ (line 582) | def __len__(self) -> int: method set_hw_classes (line 585) | def set_hw_classes(self, hw_classes: List[HardwareEqClass]) -> None: method set_trivial_hw_classes (line 593) | def set_trivial_hw_classes(self) -> None: method get_hw_classes (line 601) | def get_hw_classes(self) -> List[HardwareEqClass]: class Violation (line 610) | class Violation(ContractEqClass): method __init__ (line 626) | def __init__(self, measurements: List[TraceBundle], input_sequence: Li... method from_contract_eq_class (line 633) | def from_contract_eq_class(cls, eq_class: ContractEqClass, input_seque... method pseudo_violation_from_inputs (line 646) | def pseudo_violation_from_inputs(cls, input_sequence: List[InputData], method full_str (line 670) | def full_str(self, region1_col: str = "", region2_col: str = "", reset... FILE: rvzr/unicorn.pyi class Uc (line 8) | class Uc(object): method __init__ (line 10) | def __init__(self, arch: int, mode: int): method emu_start (line 13) | def emu_start(self, begin: int, until: int, timeout: int = 0, count: i... method emu_stop (line 16) | def emu_stop(self) -> None: method reg_read (line 19) | def reg_read(self, reg_id: int, opt: Optional[int] = None) -> int: method reg_write (line 22) | def reg_write(self, reg_id: int, value: int) -> None: method msr_read (line 25) | def msr_read(self, msr_id: int) -> int: method msr_write (line 28) | def msr_write(self, msr_id: int, value: int) -> None: method mem_read (line 31) | def mem_read(self, address: int, size: int) -> bytearray: method mem_write (line 34) | def mem_write(self, address: int, data: bytes) -> None: method mem_map (line 37) | def mem_map(self, address: int, size: int, perms: int = ...) -> None: method mem_map_ptr (line 40) | def mem_map_ptr(self, address: int, size: int, perms: int, ptr: int) -... method mem_unmap (line 43) | def mem_unmap(self, address: int, size: int) -> None: method mem_protect (line 46) | def mem_protect(self, address: int, size: int, perms: int = ...) -> None: method query (line 49) | def query(self, query_mode: int) -> int: method hook_add (line 52) | def hook_add(self, method hook_del (line 62) | def hook_del(self, h: int) -> None: method context_save (line 65) | def context_save(self) -> object: method context_update (line 68) | def context_update(self, context: object) -> None: method context_restore (line 71) | def context_restore(self, context: object) -> None: method mem_regions (line 74) | def mem_regions(self) -> Generator[Tuple[int, int], None, None]: class UcError (line 78) | class UcError(BaseException): FILE: tests/arm64/model_common.py class Inst (line 43) | class Inst: method __init__ (line 51) | def __init__(self, text: str, size: int, mem_address: int, mem_value: ... class InstList (line 59) | class InstList: method __init__ (line 63) | def __init__(self, instructions: List[Inst]): method __iter__ (line 71) | def __iter__(self) -> Generator[Inst, None, None]: method __getitem__ (line 74) | def __getitem__(self, index: int) -> Inst: method set_offsets (line 78) | def set_offsets(instructions: List[Inst]) -> None: method to_test_case (line 85) | def to_test_case(self) -> TestCaseProgram: function get_default_input (line 109) | def get_default_input() -> InputData: FILE: tests/arm64/unit_generators.py class ARM64GeneratorTest (line 38) | class ARM64GeneratorTest(unittest.TestCase): method setUpClass (line 41) | def setUpClass(cls) -> None: method load_tc (line 46) | def load_tc(asm_str: str) -> TestCaseProgram: method test_arm64_configuration (line 61) | def test_arm64_configuration(self) -> None: method test_arm64_all_instructions (line 68) | def test_arm64_all_instructions(self) -> None: method test_arm64_asm_parsing_basic (line 120) | def test_arm64_asm_parsing_basic(self) -> None: method test_arm64_asm_parsing_opcode (line 147) | def test_arm64_asm_parsing_opcode(self) -> None: method test_arm64_asm_parsing_section (line 158) | def test_arm64_asm_parsing_section(self) -> None: method test_arm64_asm_parsing_symbols (line 204) | def test_arm64_asm_parsing_symbols(self) -> None: FILE: tests/arm64/unit_isa_loader.py class ARM64ISALoaderTest (line 16) | class ARM64ISALoaderTest(unittest.TestCase): method test_loading (line 18) | def test_loading(self) -> None: FILE: tests/scripts/create_rcbf_file.py function write_actor_metadata (line 16) | def write_actor_metadata(f, entry): function write_st_entry (line 25) | def write_st_entry(f, entry): function write_metadata_entry (line 32) | def write_metadata_entry(f, entry): function write_nop (line 38) | def write_nop(f, arch: str): function get_macro_placeholder_size (line 45) | def get_macro_placeholder_size(arch: str): function main (line 51) | def main(asm_file: str, obj_file: str, arch: str): FILE: tests/scripts/create_rdbf_file.py function main (line 13) | def main(dest_file: str, n_inputs: int, n_actors: int): FILE: tests/unit_analyser.py function _htrace_from_trace (line 19) | def _htrace_from_trace(trace_list: List[int]) -> HTrace: function _ctrace_from_int (line 26) | def _ctrace_from_int(trace: int) -> CTrace: class AnalyserTest (line 30) | class AnalyserTest(unittest.TestCase): method test_merged_bitmap_analyser (line 32) | def test_merged_bitmap_analyser(self) -> None: method test_set_analyser (line 48) | def test_set_analyser(self) -> None: method test_chi2_analyser (line 64) | def test_chi2_analyser(self) -> None: FILE: tests/unit_docs.py function _is_option_name (line 21) | def _is_option_name(line: str) -> bool: function parse_config_options_from_docs (line 26) | def parse_config_options_from_docs(doc_lines: List[str]) -> Dict[str, Li... class DocumentationTest (line 93) | class DocumentationTest(unittest.TestCase): method test_conf_docs (line 99) | def test_conf_docs(self) -> None: method test_conf_options_docs (line 117) | def test_conf_options_docs(self) -> None: FILE: tests/unit_fuzzer.py function _mk_ctrace (line 27) | def _mk_ctrace(value: int) -> CTrace: function _mk_htrace (line 32) | def _mk_htrace(trace_value: int, sample_size: int = 100) -> HTrace: function _mk_violation (line 40) | def _mk_violation(n_inputs: int = 2) -> Violation: function _temp_conf_override (line 58) | def _temp_conf_override(**kwargs: Any) -> Iterator[None]: class _MockSetup (line 74) | class _MockSetup: method __init__ (line 77) | def __init__(self, inputs: List[InputData]) -> None: method configure_mocks (line 85) | def configure_mocks( class FuzzerRoundTest (line 101) | class FuzzerRoundTest(unittest.TestCase): method setUp (line 107) | def setUp(self) -> None: method tearDown (line 159) | def tearDown(self) -> None: method test_fuzzing_round_no_violation_fast_path (line 168) | def test_fuzzing_round_no_violation_fast_path(self) -> None: method test_fuzzing_round_violation_detected_survives_all_stages (line 184) | def test_fuzzing_round_violation_detected_survives_all_stages(self) ->... method test_fuzzing_round_fp_filtered_by_nesting (line 214) | def test_fuzzing_round_fp_filtered_by_nesting(self) -> None: method test_fuzzing_round_fp_filtered_by_taint_mistake (line 231) | def test_fuzzing_round_fp_filtered_by_taint_mistake(self) -> None: method test_fuzzing_round_fp_filtered_by_priming (line 256) | def test_fuzzing_round_fp_filtered_by_priming(self) -> None: method test_fuzzing_round_noise_stage_extends_htraces (line 274) | def test_fuzzing_round_noise_stage_extends_htraces(self) -> None: method test_fuzzing_round_architectural_mismatch_detected (line 306) | def test_fuzzing_round_architectural_mismatch_detected(self) -> None: method test_fuzzing_round_executor_error_handled (line 343) | def test_fuzzing_round_executor_error_handled(self) -> None: method test_fuzzing_round_with_ignore_list (line 361) | def test_fuzzing_round_with_ignore_list(self) -> None: method test_fuzzing_round_empty_inputs (line 375) | def test_fuzzing_round_empty_inputs(self) -> None: method test_round_state_configuration (line 393) | def test_round_state_configuration(self) -> None: method test_round_manager_stage_execution_order (line 407) | def test_round_manager_stage_execution_order(self) -> None: class FuzzerStartTest (line 432) | class FuzzerStartTest(unittest.TestCase): method setUp (line 435) | def setUp(self) -> None: method tearDown (line 461) | def tearDown(self) -> None: method test_start_no_violations_found (line 465) | def test_start_no_violations_found(self) -> None: method test_start_violation_found_stop (line 480) | def test_start_violation_found_stop(self) -> None: method test_start_violation_found_nonstop (line 497) | def test_start_violation_found_nonstop(self) -> None: FILE: tests/unit_isa_loader.py class InstructionSetParserTest (line 52) | class InstructionSetParserTest(unittest.TestCase): method test_parsing (line 54) | def test_parsing(self) -> None: method test_dedup_identical (line 88) | def test_dedup_identical(self) -> None: FILE: tests/unit_stats.py class StatsTest (line 15) | class StatsTest(unittest.TestCase): method test_borg (line 17) | def test_borg(self) -> None: method test_str (line 23) | def test_str(self) -> None: method test_get_brief (line 37) | def test_get_brief(self) -> None: FILE: tests/unit_tc_components.py function _get_dummy_actor_dict (line 30) | def _get_dummy_actor_dict() -> ActorConf: function _get_mock_target_desc (line 50) | def _get_mock_target_desc() -> MagicMock: class ActorTest (line 63) | class ActorTest(unittest.TestCase): method test_dict_constructor (line 65) | def test_dict_constructor(self) -> None: method test_create_main (line 95) | def test_create_main(self) -> None: method test_get_id (line 104) | def test_get_id(self) -> None: method test_is_main (line 120) | def test_is_main(self) -> None: method test_pte_constructor (line 132) | def test_pte_constructor(self) -> None: class InstructionSpecTest (line 154) | class InstructionSpecTest(unittest.TestCase): method test_OT_str (line 156) | def test_OT_str(self) -> None: method test_operand_str (line 165) | def test_operand_str(self) -> None: method test_instruction_spec_str (line 176) | def test_instruction_spec_str(self) -> None: method test_instruction_spec_hash (line 185) | def test_instruction_spec_hash(self) -> None: class OperandTest (line 195) | class OperandTest(unittest.TestCase): method test_operand_from_spec (line 197) | def test_operand_from_spec(self) -> None: method test_flag_print (line 214) | def test_flag_print(self) -> None: method test_flag_accessors (line 218) | def test_flag_accessors(self) -> None: method test_operand_copy_methods (line 227) | def test_operand_copy_methods(self) -> None: class InstructionTest (line 259) | class InstructionTest(unittest.TestCase): method test_instruction_from_spec (line 261) | def test_instruction_from_spec(self) -> None: method test_instruction_str (line 280) | def test_instruction_str(self) -> None: method test_instr_add_op (line 289) | def test_instr_add_op(self) -> None: method test_instr_properties (line 304) | def test_instr_properties(self) -> None: method test_operand_accessors (line 354) | def test_operand_accessors(self) -> None: method test_copy_with_modification (line 410) | def test_copy_with_modification(self) -> None: method test_line_num_interface (line 460) | def test_line_num_interface(self) -> None: class TestCaseBinaryTest (line 471) | class TestCaseBinaryTest(unittest.TestCase): method test_get_macro_offset (line 473) | def test_get_macro_offset(self) -> None: class TestCaseCodeTest (line 496) | class TestCaseCodeTest(unittest.TestCase): method test_basic_block_str (line 498) | def test_basic_block_str(self) -> None: method test_basic_block_get_owner (line 502) | def test_basic_block_get_owner(self) -> None: class InputDataTest (line 517) | class InputDataTest(unittest.TestCase): method test_data_sizes (line 519) | def test_data_sizes(self) -> None: method test_hash (line 526) | def test_hash(self) -> None: method test_str (line 530) | def test_str(self) -> None: method test_set_actor_data (line 536) | def test_set_actor_data(self) -> None: method test_save (line 552) | def test_save(self) -> None: method test_load (line 573) | def test_load(self) -> None: method test_linear_view (line 590) | def test_linear_view(self) -> None: FILE: tests/unit_traces.py class TestCTrace (line 25) | class TestCTrace(unittest.TestCase): method test_empty_constructor (line 28) | def test_empty_constructor(self) -> None: method test_str (line 35) | def test_str(self) -> None: method test_full_str (line 49) | def test_full_str(self) -> None: method test_default_methods (line 76) | def test_default_methods(self) -> None: method test_accessors (line 100) | def test_accessors(self) -> None: class TestHTrace (line 119) | class TestHTrace(unittest.TestCase): method test_empty_constructor (line 122) | def test_empty_constructor(self) -> None: method test_invalid_constructor (line 129) | def test_invalid_constructor(self) -> None: method test_printers (line 135) | def test_printers(self) -> None: method test_pair_printers (line 163) | def test_pair_printers(self) -> None: method test_default_methods (line 189) | def test_default_methods(self) -> None: method test_merge (line 208) | def test_merge(self) -> None: method test_accessors (line 217) | def test_accessors(self) -> None: function _get_bundle_set (line 238) | def _get_bundle_set() -> list[TraceBundle]: class TestHardwareEqClass (line 262) | class TestHardwareEqClass(unittest.TestCase): method test_hw_class_builder (line 265) | def test_hw_class_builder(self) -> None: method test_default_methods (line 278) | def test_default_methods(self) -> None: class TestContractEqClass (line 299) | class TestContractEqClass(unittest.TestCase): method test_contract_class_builder (line 302) | def test_contract_class_builder(self) -> None: method test_accessors (line 315) | def test_accessors(self) -> None: class TestViolation (line 340) | class TestViolation(unittest.TestCase): method test_constructors (line 343) | def test_constructors(self) -> None: FILE: tests/x86_tests/model_common.py class Inst (line 56) | class Inst: class InstList (line 65) | class InstList: method __init__ (line 69) | def __init__(self, instructions: List[Inst], backend: Backend): method _wrap_instructions_for_backend (line 78) | def _wrap_instructions_for_backend(self, instructions: List[Inst]) -> ... method _wrap_instructions_for_dr (line 84) | def _wrap_instructions_for_dr(self, instructions: List[Inst]) -> List[... method _wrap_instructions_for_uc (line 95) | def _wrap_instructions_for_uc(self, instructions: List[Inst]) -> List[... method __iter__ (line 105) | def __iter__(self) -> Generator[Inst, None, None]: method __getitem__ (line 108) | def __getitem__(self, index: int) -> Inst: method set_offsets (line 111) | def set_offsets(self, instructions: List[Inst]) -> None: method to_test_case (line 118) | def to_test_case(self) -> TestCaseProgram: method get_expected_observations (line 148) | def get_expected_observations(self, execution_order: List[int], observ... method _adjust_execution_order_for_backend (line 161) | def _adjust_execution_order_for_backend(self, execution_order: List[in... method _adjust_order_for_dr (line 170) | def _adjust_order_for_dr(self, execution_order: List[int], last_org_id... method _adjust_order_for_uc (line 184) | def _adjust_order_for_uc(self, execution_order: List[int], last_org_id... method _collect_observations (line 197) | def _collect_observations(self, execution_order: List[int], observe_pc... class InputBuilder (line 215) | class InputBuilder: method get_default_input (line 218) | def get_default_input(self) -> InputData: method get_input_with_zeroed_gprs (line 232) | def get_input_with_zeroed_gprs(self, *gpr_indices: int) -> InputData: method get_input_with_zeroed_memory (line 243) | def get_input_with_zeroed_memory(self, **memory_regions: int) -> Input... FILE: tests/x86_tests/unit_dr_decoder.py class DRTraceDecodeTest (line 145) | class DRTraceDecodeTest(unittest.TestCase): method _find_entry_of_type (line 153) | def _find_entry_of_type(self, t: TraceEntryType) -> dict[str, Any]: method _encode_from_dict (line 160) | def _encode_from_dict(self, entry: dict[str, Any]) -> bytes: method _check_trace_equivalence (line 163) | def _check_trace_equivalence(self, expected: dict[str, Any], decoded: ... method test_trace_decoding (line 171) | def test_trace_decoding(self) -> None: method test_is_corrupted (line 193) | def test_is_corrupted(self) -> None: class DRDebugTraceDecodeTest (line 222) | class DRDebugTraceDecodeTest(unittest.TestCase): method _find_entry_of_type (line 230) | def _find_entry_of_type(self, t: DebugTraceEntryType) -> dict[str, Any]: method _encode_from_dict (line 237) | def _encode_from_dict(self, entry: dict[str, Any]) -> bytes: method _check_dbg_trace_equivalence (line 257) | def _check_dbg_trace_equivalence(self, expected: dict[str, Any], decod... method test_debug_entry_decoding (line 320) | def test_debug_entry_decoding(self) -> None: method test_debug_trace_decoding (line 331) | def test_debug_trace_decoding(self) -> None: method test_is_corrupted (line 353) | def test_is_corrupted(self) -> None: FILE: tests/x86_tests/unit_fuzzer.py class X86FuzzerTest (line 30) | class X86FuzzerTest(unittest.TestCase): method setUpClass (line 33) | def setUpClass(cls) -> None: method test__create_fenced_test_case (line 37) | def test__create_fenced_test_case(self) -> None: FILE: tests/x86_tests/unit_generators.py class X86GeneratorTest (line 66) | class X86GeneratorTest(unittest.TestCase): method setUpClass (line 69) | def setUpClass(cls) -> None: method load_tc (line 74) | def load_tc(asm_str: str) -> TestCaseProgram: method test_x86_configuration (line 89) | def test_x86_configuration(self) -> None: method _test_all_instructions (line 96) | def _test_all_instructions(self, instruction_set: InstructionSet) -> N... method test_x86_all_instructions_reduced (line 143) | def test_x86_all_instructions_reduced(self) -> None: method test_x86_all_instructions_full (line 148) | def test_x86_all_instructions_full(self) -> None: method test_x86_asm_parsing_basic (line 156) | def test_x86_asm_parsing_basic(self) -> None: method test_x86_asm_parsing_opcode (line 183) | def test_x86_asm_parsing_opcode(self) -> None: method test_x86_asm_parsing_section (line 194) | def test_x86_asm_parsing_section(self) -> None: method test_x86_asm_parsing_symbols (line 240) | def test_x86_asm_parsing_symbols(self) -> None: method test_x86_undef_flag_patch (line 265) | def test_x86_undef_flag_patch(self) -> None: FILE: tests/x86_tests/unit_isa_loader.py class x86ISALoaderTest (line 16) | class x86ISALoaderTest(unittest.TestCase): method test_instruction_filtering (line 18) | def test_instruction_filtering(self) -> None: FILE: tests/x86_tests/unit_model.py function skip_for_backend (line 46) | def skip_for_backend(backend: Backend, reason: str = "not supported") ->... class _SharedX86Model (line 71) | class _SharedX86Model(unittest.TestCase): method setUpClass (line 83) | def setUpClass(cls) -> None: method _configure_class (line 88) | def _configure_class(cls, method _teardown_class (line 109) | def _teardown_class(cls) -> None: method __init__ (line 115) | def __init__(self, methodName: str = "runTest") -> None: method setUp (line 119) | def setUp(self) -> None: method tearDown (line 123) | def tearDown(self) -> None: method _get_default_ct_trace (line 128) | def _get_default_ct_trace() -> List[int]: method _save_conf (line 133) | def _save_conf(self) -> None: method _restore_conf (line 138) | def _restore_conf(self) -> None: method _get_model (line 146) | def _get_model(self, method _get_trace (line 153) | def _get_trace(self, method test_no_trace (line 173) | def test_no_trace(self) -> None: method test_mismatch_check_mode (line 188) | def test_mismatch_check_mode(self) -> None: method test_mismatch_check_mode_2 (line 218) | def test_mismatch_check_mode_2(self) -> None: method test_l1d_seq (line 244) | def test_l1d_seq(self) -> None: method test_ct_seq (line 262) | def test_ct_seq(self) -> None: method test_checkpoint_rollback_registers (line 282) | def test_checkpoint_rollback_registers(self) -> None: method test_checkpoint_rollback_memory (line 303) | def test_checkpoint_rollback_memory(self) -> None: method test_checkpoint_rollback_nested (line 326) | def test_checkpoint_rollback_nested(self) -> None: method test_ct_cond (line 357) | def test_ct_cond(self) -> None: method test_ct_cond_double (line 396) | def test_ct_cond_double(self) -> None: method test_rollback_on_fence (line 438) | def test_rollback_on_fence(self) -> None: method test_ct_bpas (line 463) | def test_ct_bpas(self) -> None: method test_fault_handling (line 501) | def test_fault_handling(self) -> None: method test_ct_deh (line 520) | def test_ct_deh(self) -> None: method test_ct_nullinj_assist (line 549) | def test_ct_nullinj_assist(self) -> None: method test_ct_nullinj_term (line 595) | def test_ct_nullinj_term(self) -> None: method test_ct_meltdown (line 633) | def test_ct_meltdown(self) -> None: method test_arch_seq (line 667) | def test_arch_seq(self) -> None: method test_ind (line 691) | def test_ind(self) -> None: method test_ind_spec (line 722) | def test_ind_spec(self) -> None: method test_ind_poison (line 761) | def test_ind_poison(self) -> None: class X86DRModelTest (line 812) | class X86DRModelTest(_SharedX86Model): method __init__ (line 815) | def __init__(self, methodName: str) -> None: method setUpClass (line 821) | def setUpClass(cls) -> None: method tearDownClass (line 825) | def tearDownClass(cls) -> None: method setUp (line 828) | def setUp(self) -> None: method _skip_if_not_installed (line 832) | def _skip_if_not_installed(self) -> None: method _get_model (line 838) | def _get_model(self, method test_clause_configuration (line 850) | def test_clause_configuration(self) -> None: method test_load_test_case (line 876) | def test_load_test_case(self) -> None: method test_tc_dispatch (line 896) | def test_tc_dispatch(self) -> None: class UnicornModelTest (line 957) | class UnicornModelTest(_SharedX86Model): # pylint: disable=too-many-pub... method __init__ (line 960) | def __init__(self, methodName: str) -> None: method setUpClass (line 966) | def setUpClass(cls) -> None: method tearDownClass (line 973) | def tearDownClass(cls) -> None: method _get_model (line 976) | def _get_model(self, FILE: tests/x86_tests/unit_taint_tracker.py class _SharedTaintTrackerTest (line 31) | class _SharedTaintTrackerTest(ABC, unittest.TestCase): method setUpClass (line 45) | def setUpClass(cls) -> None: method tearDownClass (line 61) | def tearDownClass(cls) -> None: method __init__ (line 66) | def __init__(self, methodName: str) -> None: method _get_model (line 70) | def _get_model(self) -> Union[DynamoRIOModel, X86UnicornModel]: method _trace_with_taints (line 79) | def _trace_with_taints(self, test_case: InstList, method _run_taint_test (line 88) | def _run_taint_test(self, instructions: List[Inst], input_: InputData)... method test_basic_taint (line 99) | def test_basic_taint(self) -> None: method test_reg_to_reg (line 107) | def test_reg_to_reg(self) -> None: method test_mem_to_reg (line 117) | def test_mem_to_reg(self) -> None: method test_load_to_store (line 130) | def test_load_to_store(self) -> None: method test_unaligned_memory_access_taints_both_qwords (line 141) | def test_unaligned_memory_access_taints_both_qwords(self) -> None: method test_simd_register_dependencies_are_tracked (line 153) | def test_simd_register_dependencies_are_tracked(self) -> None: method test_32bit_writes_preserve_64bit_dependencies (line 166) | def test_32bit_writes_preserve_64bit_dependencies(self) -> None: method test_lea_address_computation_propagates_taint (line 179) | def test_lea_address_computation_propagates_taint(self) -> None: method test_control_flow_dependency_taints_condition (line 190) | def test_control_flow_dependency_taints_condition(self) -> None: class X86DRTaintTrackerTest (line 205) | class X86DRTaintTrackerTest(_SharedTaintTrackerTest): method _skip_if_not_installed (line 211) | def _skip_if_not_installed(self) -> None: method setUp (line 217) | def setUp(self) -> None: class UnicornTaintTrackerTest (line 221) | class UnicornTaintTrackerTest(_SharedTaintTrackerTest): # pylint: disab...