gitextract_198ykafh/ ├── .editorconfig ├── .github/ │ ├── CODEOWNERS │ └── workflows/ │ ├── kmodule-build.yaml │ └── python-lint-and-test.yaml ├── .gitignore ├── .gitmodules ├── .pylintrc ├── AUTHORS ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── demo/ │ ├── README.md │ ├── big-fuzz.yaml │ ├── detect-foreshadow.yaml │ ├── detect-mds.yaml │ ├── detect-sco.yaml │ ├── detect-v1-store.yaml │ ├── detect-v1-var.yaml │ ├── detect-v1.yaml │ ├── detect-v4.yaml │ ├── detect-zdi.yaml │ ├── tsa-l1d/ │ │ ├── config.yaml │ │ └── template.asm │ └── tsa-sq/ │ ├── config.yaml │ └── template.asm ├── docs/ │ ├── assets/ │ │ ├── branches.drawio │ │ ├── dr-instrumentation.drawio │ │ ├── dr-model.drawio │ │ ├── fuzzing-flow.drawio │ │ ├── tsa-sq-template.drawio │ │ └── unicorn-model-state-machine.drawio │ ├── faq/ │ │ └── general.md │ ├── glossary.md │ ├── howto/ │ │ ├── ask-a-question.md │ │ ├── choose-contract.md │ │ ├── design-campaign.md │ │ ├── interpret-results.md │ │ ├── minimize.md │ │ ├── root-cause-a-violation.md │ │ ├── use-macros.md │ │ └── use-templates.md │ ├── index.md │ ├── internals/ │ │ ├── architecture/ │ │ │ ├── analysis.md │ │ │ ├── code.md │ │ │ ├── data.md │ │ │ ├── exec.md │ │ │ ├── fuzz.md │ │ │ ├── isa.md │ │ │ ├── logging.md │ │ │ ├── mini.md │ │ │ ├── model.md │ │ │ └── overview.md │ │ ├── code-structure.md │ │ ├── contributing/ │ │ │ ├── code-style.md │ │ │ ├── general.md │ │ │ ├── git.md │ │ │ └── overview.md │ │ ├── index.md │ │ └── model-backends/ │ │ ├── model-dr.md │ │ └── model-unicorn.md │ ├── intro/ │ │ ├── 01-overview.md │ │ ├── 02-install.md │ │ ├── 03-primer.md │ │ ├── 04-tutorials.md │ │ ├── start-here.md │ │ └── tutorials/ │ │ ├── 01-first-fuzz.md │ │ ├── 02-first-vuln.md │ │ ├── 03-faults.md │ │ ├── 04-isolation.md │ │ ├── 05-extending.md │ │ └── tsa-sq.md │ ├── ref/ │ │ ├── artifact-file-formats.md │ │ ├── binary-formats.md │ │ ├── cli.md │ │ ├── config.md │ │ ├── index.md │ │ ├── macros.md │ │ ├── minimization-passes.md │ │ ├── modes.md │ │ ├── papers.md │ │ ├── registers.md │ │ ├── runtime-statistic.md │ │ └── sandbox.md │ ├── structure.md │ ├── stylesheets/ │ │ └── extra.css │ └── topics/ │ ├── actors.md │ ├── contracts.md │ ├── models.md │ ├── test-case-generation.md │ └── trace-analysis.md ├── mkdocs.yml ├── pyproject.toml ├── revizor.py ├── rvzr/ │ ├── __init__.py │ ├── analyser.py │ ├── arch/ │ │ ├── __init__.py │ │ ├── arm64/ │ │ │ ├── __init__.py │ │ │ ├── asm_parser.py │ │ │ ├── config.py │ │ │ ├── executor.py │ │ │ ├── fuzzer.py │ │ │ ├── generator.py │ │ │ ├── get_spec.py │ │ │ └── target_desc.py │ │ └── x86/ │ │ ├── __init__.py │ │ ├── asm_parser.py │ │ ├── config.py │ │ ├── executor.py │ │ ├── fuzzer.py │ │ ├── generator.py │ │ ├── get_spec.py │ │ └── target_desc.py │ ├── asm_parser.py │ ├── cli.py │ ├── code_generator.py │ ├── config.py │ ├── data_generator.py │ ├── elf_parser.py │ ├── executor.py │ ├── executor_km/ │ │ ├── .clang-format │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── arm64/ │ │ │ ├── asm_snippets.h │ │ │ ├── entry_exit_points.h │ │ │ ├── exception.S │ │ │ ├── fault_handler.c │ │ │ ├── macros.c │ │ │ ├── page_tables_guest.c │ │ │ ├── perf_counters.c │ │ │ ├── registers.h │ │ │ └── special_registers.c │ │ ├── code_loader.c │ │ ├── data_loader.c │ │ ├── include/ │ │ │ ├── actor.h │ │ │ ├── asm_snippets.h │ │ │ ├── code_loader.h │ │ │ ├── data_loader.h │ │ │ ├── fault_handler.h │ │ │ ├── hardware_desc.h │ │ │ ├── input_parser.h │ │ │ ├── macro_expansion.h │ │ │ ├── main.h │ │ │ ├── measurement.h │ │ │ ├── page_tables_common.h │ │ │ ├── page_tables_guest.h │ │ │ ├── page_tables_host.h │ │ │ ├── perf_counters.h │ │ │ ├── sandbox_constants.h │ │ │ ├── sandbox_manager.h │ │ │ ├── shortcuts.h │ │ │ ├── special_registers.h │ │ │ ├── svm.h │ │ │ ├── svm_constants.h │ │ │ ├── test_case_parser.h │ │ │ ├── vmx.h │ │ │ └── vmx_config.h │ │ ├── input_parser.c │ │ ├── macro_expansion.c │ │ ├── main.c │ │ ├── measurement.c │ │ ├── page_tables_host.c │ │ ├── readme.md │ │ ├── sandbox_manager.c │ │ ├── test_case_parser.c │ │ └── x86/ │ │ ├── asm_snippets.h │ │ ├── entry_exit_points.h │ │ ├── fault_handlers.S │ │ ├── idt.c │ │ ├── macros.c │ │ ├── page_tables_guest.c │ │ ├── perf_counters.c │ │ ├── registers.h │ │ ├── special_registers.c │ │ ├── svm.c │ │ └── vmx.c │ ├── factory.py │ ├── fuzzer.py │ ├── instruction_spec.py │ ├── isa_spec.py │ ├── logs.py │ ├── model.py │ ├── model_dynamorio/ │ │ ├── Makefile │ │ ├── __init__.py │ │ ├── adapter/ │ │ │ ├── .clang-format │ │ │ ├── .clang-tidy │ │ │ ├── CMakeLists.txt │ │ │ ├── main.c │ │ │ ├── parser.c │ │ │ ├── parser.h │ │ │ ├── rcbf.h │ │ │ ├── rdbf.h │ │ │ ├── sandbox.c │ │ │ ├── sandbox.h │ │ │ ├── sandbox_const.h │ │ │ └── test_case_entry.S │ │ ├── backend/ │ │ │ ├── .clang-format │ │ │ ├── .clang-tidy │ │ │ ├── CMakeLists.txt │ │ │ ├── cli.cpp │ │ │ ├── dispatcher.cpp │ │ │ ├── factory.cpp │ │ │ ├── include/ │ │ │ │ ├── cli.hpp │ │ │ │ ├── dispatcher.hpp │ │ │ │ ├── factory.hpp │ │ │ │ ├── logger.hpp │ │ │ │ ├── observables.hpp │ │ │ │ ├── speculator_abc.hpp │ │ │ │ ├── speculators/ │ │ │ │ │ ├── cond.hpp │ │ │ │ │ └── seq.hpp │ │ │ │ ├── taint_tracker.hpp │ │ │ │ ├── tracer_abc.hpp │ │ │ │ ├── tracers/ │ │ │ │ │ ├── ct.hpp │ │ │ │ │ ├── ind.hpp │ │ │ │ │ └── pc.hpp │ │ │ │ ├── types/ │ │ │ │ │ ├── debug_trace.hpp │ │ │ │ │ ├── decoder.hpp │ │ │ │ │ ├── file_buffer.hpp │ │ │ │ │ ├── input_taint.hpp │ │ │ │ │ ├── store_log.hpp │ │ │ │ │ └── trace.hpp │ │ │ │ └── util.hpp │ │ │ ├── logger.cpp │ │ │ ├── model.cpp │ │ │ ├── speculator_abc.cpp │ │ │ ├── speculators/ │ │ │ │ ├── cond.cpp │ │ │ │ └── seq.cpp │ │ │ ├── taint_tracker.cpp │ │ │ ├── tracer_abc.cpp │ │ │ ├── tracers/ │ │ │ │ ├── ct.cpp │ │ │ │ ├── ind.cpp │ │ │ │ └── pc.cpp │ │ │ └── util.cpp │ │ ├── model.py │ │ └── trace_decoder.py │ ├── model_unicorn/ │ │ ├── __init__.py │ │ ├── coverage.py │ │ ├── execution_context.py │ │ ├── interpreter.py │ │ ├── model.py │ │ ├── speculator_abc.py │ │ ├── speculators_basic.py │ │ ├── speculators_fault.py │ │ ├── speculators_vs.py │ │ ├── taint_tracker.py │ │ └── tracer.py │ ├── postprocessing/ │ │ ├── __init__.py │ │ ├── analysis_passes.py │ │ ├── input_passes.py │ │ ├── instruction_passes.py │ │ ├── minimizer.py │ │ ├── pass_abc.py │ │ └── progress_printer.py │ ├── py.typed │ ├── sandbox.py │ ├── stats.py │ ├── target_desc.py │ ├── tc_components/ │ │ ├── __init__.py │ │ ├── actor.py │ │ ├── instruction.py │ │ ├── test_case_binary.py │ │ ├── test_case_code.py │ │ └── test_case_data.py │ ├── traces.py │ └── unicorn.pyi └── tests/ ├── .coveragerc ├── .gitignore ├── __init__.py ├── acceptance.bats ├── arm64/ │ ├── asm/ │ │ ├── actor_switch.asm │ │ ├── asm_basic.asm │ │ ├── asm_multiactor.asm │ │ ├── asm_symbol.asm │ │ ├── calls.asm │ │ ├── direct_jumps.asm │ │ ├── fault-div-zero-speculation.asm │ │ ├── fault_undefined_opcode.asm │ │ ├── macro_fault_handler.asm │ │ ├── model_flags_match.asm │ │ ├── model_match.asm │ │ ├── model_match_memory.asm │ │ ├── model_match_xmm.asm │ │ └── spectre_v1.asm │ ├── configs/ │ │ ├── arch-actors.yaml │ │ ├── arch-faults.yaml │ │ ├── arch.yaml │ │ ├── archdiff.yaml │ │ ├── base-and-simd-categories.yaml │ │ ├── common.yaml │ │ ├── ct-cond.yaml │ │ ├── ct-seq.yaml │ │ ├── exceptions.yaml │ │ └── fault-handler.yaml │ ├── min_arm64.json │ ├── model_common.py │ ├── unit_generators.py │ └── unit_isa_loader.py ├── kernel_module.bats ├── pre-release.sh ├── quick-test.sh ├── runtests.sh ├── scripts/ │ ├── create_rcbf_file.py │ └── create_rdbf_file.py ├── unit_analyser.py ├── unit_docs.py ├── unit_fuzzer.py ├── unit_isa_loader.py ├── unit_stats.py ├── unit_tc_components.py ├── unit_traces.py └── x86_tests/ ├── __init__.py ├── asm/ │ ├── actor_switch.asm │ ├── asm_basic.asm │ ├── asm_multiactor.asm │ ├── asm_symbol.asm │ ├── calls.asm │ ├── direct_jumps.asm │ ├── fault-div-overflow-speculation.asm │ ├── fault-div-zero-speculation.asm │ ├── fault_INT1.asm │ ├── fault_INT3.asm │ ├── fault_UD.asm │ ├── fault_load.asm │ ├── fault_ooo_mem_access.asm │ ├── fault_rmw.asm │ ├── macro_fault_handler.asm │ ├── minimization-after.asm │ ├── minimization-before.asm │ ├── model_flags_match.asm │ ├── model_match.asm │ ├── model_match_memory.asm │ ├── model_match_xmm.asm │ ├── spectre_ret.asm │ ├── spectre_v1.1.asm │ ├── spectre_v1.asm │ ├── spectre_v1_arch.asm │ ├── spectre_v1_independent.asm │ ├── spectre_v1_n2.asm │ ├── spectre_v2.asm │ ├── spectre_v4.asm │ └── vm_switch.asm ├── configs/ │ ├── arch-actors.yaml │ ├── arch-dr.yaml │ ├── arch-faults.yaml │ ├── arch.yaml │ ├── archdiff.yaml │ ├── base-and-simd-categories.yaml │ ├── base-categories.yaml │ ├── common.yaml │ ├── copy.yaml │ ├── ct-cond.yaml │ ├── ct-deh.yaml │ ├── ct-seq.yaml │ ├── div-detect.yaml │ ├── div-verif.yaml │ ├── exceptions.yaml │ ├── fault-handler.yaml │ ├── l1tf-p-verif.yaml │ ├── l1tf-p.yaml │ ├── l1tf-w-verif.yaml │ ├── l1tf-w.yaml │ ├── meltdown-verif.yaml │ ├── meltdown.yaml │ ├── mpx-verif.yaml │ ├── mpx.yaml │ ├── ssbp-detect.yaml │ ├── ssbp-verif.yaml │ └── vm-switch.yaml ├── min_x86.json ├── model_common.py ├── unit_dr_decoder.py ├── unit_fuzzer.py ├── unit_generators.py ├── unit_isa_loader.py ├── unit_model.py └── unit_taint_tracker.py