gitextract_s0w1pbjr/ ├── .clang-format ├── .clang-format.exclude-list.txt ├── .cmake_format.conf.py ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── assistance_request.md │ │ ├── assistance_request_new.yml │ │ ├── bug_report.md │ │ ├── bug_report_new.yml │ │ └── config.yml │ ├── format_check.sh │ └── workflows/ │ ├── android.yml │ ├── ccache.conf │ ├── clang_format.yml │ ├── ios.yml │ ├── linux.yml │ ├── macos.yml │ ├── python.yml │ ├── python_linux.yml │ ├── python_macos.yml │ ├── python_windows.yml │ └── windows.yml ├── .gitignore ├── .readthedocs.condaenv.yml ├── .readthedocs.yml ├── CHANGELOG ├── CMakeLists.txt ├── LICENSE.txt ├── MANIFEST.in ├── README-pypi.rst ├── README.rst ├── cmake/ │ ├── QBDIConfig.cmake │ ├── QBDIDependencies.cmake │ ├── QBDIOptions.cmake │ ├── config/ │ │ ├── config-android-X86.sh │ │ ├── config-android-X86_64.sh │ │ ├── config-android-aarch64.sh │ │ ├── config-android-armv7.sh │ │ ├── config-ios-aarch64.sh │ │ ├── config-linux-X86.sh │ │ ├── config-linux-X86_64.sh │ │ ├── config-linux-aarch64.sh │ │ ├── config-macOS-AARCH64.sh │ │ ├── config-macOS-AARCH64e.sh │ │ ├── config-macOS-X86.sh │ │ ├── config-macOS-X86_64.sh │ │ ├── config-win-X86.py │ │ ├── config-win-X86_64.py │ │ └── ios.toolchain.cmake │ ├── dummy.c │ ├── llvm/ │ │ ├── QBDI_llvm.cmake │ │ ├── QBDI_llvm_tblgen.cmake │ │ └── rename_object.py │ └── merge_archives.cmake ├── docker/ │ ├── .gitignore │ ├── archlinux/ │ │ ├── Dockerfile.X86 │ │ ├── Dockerfile.X86_64 │ │ ├── PKGBUILD.X86 │ │ ├── PKGBUILD.X86_64 │ │ └── build.sh │ ├── ci_linux/ │ │ ├── Dockerfile │ │ ├── build-qbdi.sh │ │ ├── img_build.sh │ │ └── qbdi.sh │ ├── ci_linux_arm/ │ │ ├── .gitignore │ │ ├── build_qbdi_linux.sh │ │ ├── docker_internal_script/ │ │ │ └── build-test-linux.sh │ │ └── images/ │ │ ├── Dockerfile.dockcross │ │ └── img_build.sh │ ├── ci_python_linux/ │ │ ├── Dockerfile │ │ ├── build_whl.sh │ │ ├── img_build.sh │ │ └── whl_build.sh │ ├── common.sh │ ├── linux_arm_natif/ │ │ ├── .gitignore │ │ ├── build_qbdi_linux.sh │ │ ├── docker_internal_script/ │ │ │ └── build-test-linux.sh │ │ └── images/ │ │ ├── Dockerfile │ │ └── build_docker_img.sh │ ├── python_linux_arm/ │ │ ├── docker_internal_script/ │ │ │ └── build_wheel.sh │ │ ├── images/ │ │ │ ├── Dockerfile │ │ │ └── build_docker_img.sh │ │ └── whl_build.sh │ ├── release.sh │ ├── ubuntu_debian/ │ │ ├── Dockerfile │ │ └── build.sh │ └── ubuntu_debian_devel/ │ ├── Dockerfile │ └── build.sh ├── docs/ │ ├── CMakeLists.txt │ ├── qbdi_c.doxygen.in │ ├── qbdi_cpp.doxygen.in │ ├── qbdipreload.doxygen.in │ ├── requirements.txt │ ├── rtd_pyqbdi_artifact/ │ │ └── setup.py │ └── source/ │ ├── _static/ │ │ └── style.css │ ├── _templates/ │ │ └── layout.html │ ├── api.rst │ ├── api_c.rst │ ├── api_cpp.rst │ ├── api_description.rst │ ├── api_js.rst │ ├── api_pyqbdi.rst │ ├── api_pyqbdipreload.rst │ ├── api_qbdipreload.rst │ ├── architecture_support.rst │ ├── changelog.rst │ ├── compilation.rst │ ├── conf.py │ ├── dev.rst │ ├── execblock.rst │ ├── get_started-PyQBDIPreload.rst │ ├── get_started-QBDIPreload.rst │ ├── get_started-c.rst │ ├── get_started-cpp.rst │ ├── get_started-frida.rst │ ├── get_started-pyqbdi.rst │ ├── get_started.rst │ ├── index.rst │ ├── installation_and_integration.rst │ ├── instrumentation_process.rst │ ├── intro.rst │ ├── patchdsl.rst │ ├── references.rst │ ├── repo_organization.rst │ ├── techref.rst │ ├── testing.rst │ ├── tutorial.rst │ ├── tutorial_BBVMEvent.rst │ └── tutorial_ExecBrokerEvent.rst ├── examples/ │ ├── CMakeLists.txt │ ├── Dockerfile │ ├── c/ │ │ ├── CMakeLists.txt │ │ ├── fibonacci.c │ │ └── tracer_preload.c │ ├── cpp/ │ │ ├── CMakeLists.txt │ │ ├── fibonacci.cpp │ │ └── tracer_preload.cpp │ ├── cryptolock.c │ ├── cryptolock.cpp │ ├── mnemonicFilter.cpp │ ├── modules.c │ ├── modules.cpp │ ├── pyqbdi/ │ │ ├── coverage.py │ │ ├── trace_preload.py │ │ └── trace_sin.py │ ├── thedude.c │ └── thedude.cpp ├── include/ │ ├── QBDI/ │ │ ├── Bitmask.h │ │ ├── Callback.h │ │ ├── Config.h.in │ │ ├── Errors.h │ │ ├── InstAnalysis.h │ │ ├── Logs.h │ │ ├── Memory.h │ │ ├── Memory.hpp │ │ ├── Platform.h │ │ ├── PtrAuth.h │ │ ├── Range.h │ │ ├── VM.h │ │ ├── VM_C.h │ │ ├── Version.h.in │ │ └── arch/ │ │ ├── AARCH64/ │ │ │ ├── Options.h │ │ │ └── State.h │ │ ├── ARM/ │ │ │ ├── Options.h │ │ │ └── State.h │ │ ├── X86/ │ │ │ ├── Options.h │ │ │ └── State.h │ │ └── X86_64/ │ │ ├── Options.h │ │ └── State.h │ └── QBDI.h ├── package/ │ ├── .dockerignore │ ├── CMakeLists.txt │ ├── Readme.txt │ ├── Welcome.txt │ ├── launch_docker_packager.sh │ ├── qbdi-frida-template.in │ ├── qbdi-preload-template.in │ ├── qbdi-template.in │ └── qbdi.pc.in ├── pyproject.toml ├── setup.cfg ├── setup.py ├── src/ │ ├── CMakeLists.txt │ ├── Engine/ │ │ ├── CMakeLists.txt │ │ ├── Engine.cpp │ │ ├── Engine.h │ │ ├── LLVMCPU.cpp │ │ ├── LLVMCPU.h │ │ ├── VM.cpp │ │ ├── VM_C.cpp │ │ └── VM_internal.h │ ├── ExecBlock/ │ │ ├── AARCH64/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Context_AARCH64.h │ │ │ ├── ExecBlock_AARCH64.cpp │ │ │ ├── ScratchRegisterInfo_AARCH64.h │ │ │ ├── ios_AARCH64.s │ │ │ ├── ios_AARCH64e.s │ │ │ ├── linux-android_AARCH64.s │ │ │ ├── macos_AARCH64.s │ │ │ └── macos_AARCH64e.s │ │ ├── ARM/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Context_ARM.h │ │ │ ├── ExecBlock_ARM.cpp │ │ │ ├── ScratchRegisterInfo_ARM.h │ │ │ ├── ios_ARM.s │ │ │ └── linux-android_ARM.s │ │ ├── CMakeLists.txt │ │ ├── Context.h │ │ ├── ExecBlock.cpp │ │ ├── ExecBlock.h │ │ ├── ExecBlockManager.cpp │ │ ├── ExecBlockManager.h │ │ └── X86_64/ │ │ ├── CMakeLists.txt │ │ ├── Context_X86_64.h │ │ ├── ExecBlock_X86_64.cpp │ │ ├── ScratchRegisterInfo_X86_64.h │ │ ├── linux_X86.s │ │ ├── linux_X86_64.s │ │ ├── macos_X86.s │ │ ├── macos_X86_64.s │ │ ├── windows_X86.asm │ │ └── windows_X86_64.asm │ ├── ExecBroker/ │ │ ├── AARCH64/ │ │ │ ├── ExecBroker_AARCH64.cpp │ │ │ └── ExecBroker_AARCH64.h │ │ ├── ARM/ │ │ │ ├── ExecBroker_ARM.cpp │ │ │ └── ExecBroker_ARM.h │ │ ├── CMakeLists.txt │ │ ├── ExecBroker.cpp │ │ ├── ExecBroker.h │ │ └── X86_64/ │ │ ├── ExecBroker_X86_64.cpp │ │ └── ExecBroker_X86_64.h │ ├── Patch/ │ │ ├── AARCH64/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ExecBlockFlags_AARCH64.cpp │ │ │ ├── ExecBlockFlags_AARCH64.h │ │ │ ├── ExecBlockPatch_AARCH64.cpp │ │ │ ├── ExecBlockPatch_AARCH64.h │ │ │ ├── InstInfo_AARCH64.cpp │ │ │ ├── InstInfo_AARCH64.h │ │ │ ├── InstMetadata_AARCH64.h │ │ │ ├── InstrRules_AARCH64.cpp │ │ │ ├── Layer2_AARCH64.cpp │ │ │ ├── Layer2_AARCH64.h │ │ │ ├── MemoryAccess_AARCH64.cpp │ │ │ ├── MemoryAccess_AARCH64.h │ │ │ ├── PatchCondition_AARCH64.cpp │ │ │ ├── PatchCondition_AARCH64.h │ │ │ ├── PatchGenerator_AARCH64.cpp │ │ │ ├── PatchGenerator_AARCH64.h │ │ │ ├── PatchRuleAssembly_AARCH64.cpp │ │ │ ├── PatchRuleAssembly_AARCH64.h │ │ │ ├── Register_AARCH64.cpp │ │ │ ├── RelocatableInst_AARCH64.cpp │ │ │ ├── RelocatableInst_AARCH64.h │ │ │ ├── TempManagerImpl_AARCH64.h │ │ │ └── TempManager_AARCH64.cpp │ │ ├── ARM/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ExecBlockFlags_ARM.cpp │ │ │ ├── ExecBlockFlags_ARM.h │ │ │ ├── ExecBlockPatch_ARM.cpp │ │ │ ├── ExecBlockPatch_ARM.h │ │ │ ├── InstInfo_ARM.cpp │ │ │ ├── InstInfo_ARM.h │ │ │ ├── InstMetadata_ARM.h │ │ │ ├── InstrRules_ARM.cpp │ │ │ ├── Layer2_ARM.cpp │ │ │ ├── Layer2_ARM.h │ │ │ ├── MemoryAccess_ARM.cpp │ │ │ ├── MemoryAccess_ARM.h │ │ │ ├── PatchCondition_ARM.cpp │ │ │ ├── PatchCondition_ARM.h │ │ │ ├── PatchGenerator_ARM.cpp │ │ │ ├── PatchGenerator_ARM.h │ │ │ ├── PatchRuleAssembly_ARM.cpp │ │ │ ├── PatchRuleAssembly_ARM.h │ │ │ ├── Register_ARM.cpp │ │ │ ├── RelocatableInst_ARM.cpp │ │ │ ├── RelocatableInst_ARM.h │ │ │ ├── TempManagerImpl_ARM.h │ │ │ ├── TempManager_ARM.cpp │ │ │ └── TempManager_ARM.h │ │ ├── CMakeLists.txt │ │ ├── ExecBlockFlags.h │ │ ├── ExecBlockPatch.h │ │ ├── InstInfo.h │ │ ├── InstMetadata.h │ │ ├── InstTransform.cpp │ │ ├── InstTransform.h │ │ ├── InstrRule.cpp │ │ ├── InstrRule.h │ │ ├── InstrRules.cpp │ │ ├── InstrRules.h │ │ ├── MemoryAccess.h │ │ ├── Patch.cpp │ │ ├── Patch.h │ │ ├── PatchCondition.cpp │ │ ├── PatchCondition.h │ │ ├── PatchGenerator.cpp │ │ ├── PatchGenerator.h │ │ ├── PatchRule.cpp │ │ ├── PatchRule.h │ │ ├── PatchRuleAssembly.h │ │ ├── PatchRuleAssemblyBase.h │ │ ├── PatchUtils.h │ │ ├── Register.cpp │ │ ├── Register.h │ │ ├── RelocatableInst.h │ │ ├── TempManager.cpp │ │ ├── TempManager.h │ │ ├── Types.h │ │ └── X86_64/ │ │ ├── CMakeLists.txt │ │ ├── ExecBlockFlags_X86_64.cpp │ │ ├── ExecBlockFlags_X86_64.h │ │ ├── ExecBlockPatch_X86_64.cpp │ │ ├── InstInfo_X86_64.cpp │ │ ├── InstInfo_X86_64.h │ │ ├── InstMetadata_X86_64.h │ │ ├── InstrRules_X86_64.cpp │ │ ├── Layer2_X86_64.cpp │ │ ├── Layer2_X86_64.h │ │ ├── MemoryAccess_X86_64.cpp │ │ ├── PatchGenerator_X86_64.cpp │ │ ├── PatchGenerator_X86_64.h │ │ ├── PatchRuleAssembly_X86_64.cpp │ │ ├── PatchRuleAssembly_X86_64.h │ │ ├── Register_X86_64.cpp │ │ ├── RelocatableInst_X86_64.cpp │ │ ├── RelocatableInst_X86_64.h │ │ ├── TempManagerImpl_X86_64.h │ │ └── TempManager_X86_64.cpp │ ├── Utility/ │ │ ├── AARCH64/ │ │ │ ├── CMakeLists.txt │ │ │ ├── InstAnalysis_AARCH64.cpp │ │ │ ├── System_OSX.cpp │ │ │ ├── System_darwin.cpp │ │ │ ├── System_iOS.cpp │ │ │ ├── ios-AARCH64.s │ │ │ ├── ios-AARCH64e.s │ │ │ ├── linux-android-AARCH64.s │ │ │ ├── macos-AARCH64.s │ │ │ └── macos-AARCH64e.s │ │ ├── ARM/ │ │ │ ├── CMakeLists.txt │ │ │ ├── InstAnalysis_ARM.cpp │ │ │ ├── System_darwin.cpp │ │ │ ├── System_iOS.cpp │ │ │ ├── ios_ARM.s │ │ │ ├── linux-android_ARM.s │ │ │ ├── server-iOS-jit-user.c │ │ │ └── server-iOS-jit-user.h │ │ ├── CMakeLists.txt │ │ ├── InstAnalysis.cpp │ │ ├── InstAnalysis_prive.h │ │ ├── LogSys.cpp │ │ ├── LogSys.h │ │ ├── Memory.cpp │ │ ├── Memory_linux.cpp │ │ ├── Memory_macos.cpp │ │ ├── Memory_windows.cpp │ │ ├── MovableDoubleLinkedList.h │ │ ├── StackSwitch.cpp │ │ ├── StackSwitch.h │ │ ├── String.cpp │ │ ├── String.h │ │ ├── System.h │ │ ├── System_generic.cpp │ │ ├── Version.cpp │ │ ├── Version_commit.h.in │ │ └── X86_64/ │ │ ├── CMakeLists.txt │ │ ├── InstAnalysis_X86_64.cpp │ │ ├── linux-X86.s │ │ ├── linux-X86_64.s │ │ ├── macos-X86.s │ │ ├── macos-X86_64.s │ │ ├── windows-X86.asm │ │ └── windows-X86_64.asm │ ├── devVariable.h │ ├── fridaStubs.cpp │ └── windowsDllMain.cpp ├── templates/ │ ├── qbdi_frida_template/ │ │ ├── CMakeLists.txt │ │ ├── FridaQBDI_sample.js │ │ └── SimpleXOR.c │ ├── qbdi_preload_template/ │ │ ├── CMakeLists.txt.in │ │ ├── README.txt │ │ └── qbdi_preload_template.c │ └── qbdi_template/ │ ├── CMakeLists.txt.in │ ├── README.txt │ └── qbdi_template.c ├── test/ │ ├── API/ │ │ ├── AARCH64/ │ │ │ ├── CMakeLists.txt │ │ │ ├── InstAnalysisTest_AARCH64.cpp │ │ │ ├── MemoryAccessTest_AARCH64.cpp │ │ │ ├── VMTest_AARCH64.cpp │ │ │ ├── VMTest_AARCH64.h │ │ │ ├── VMTest_AARCH64_LDRL.cpp │ │ │ ├── VMTest_AARCH64_LocalMonitor.cpp │ │ │ └── VMTest_AARCH64_X28.cpp │ │ ├── APITest.cpp │ │ ├── APITest.h │ │ ├── ARM/ │ │ │ ├── CMakeLists.txt │ │ │ ├── InstAnalysisTest_ARM.cpp │ │ │ ├── InstAnalysisTest_Thumb.cpp │ │ │ ├── MemoryAccessTest_ARM.cpp │ │ │ ├── MemoryAccessTest_ARM_LDM_STM.cpp │ │ │ ├── MemoryAccessTest_Thumb.cpp │ │ │ ├── MemoryAccessTest_Thumb_LDM_STM.cpp │ │ │ ├── VMTest_ARM.cpp │ │ │ └── VMTest_ARM.h │ │ ├── AllocTest.cpp │ │ ├── CMakeLists.txt │ │ ├── MemoryAccessTest.cpp │ │ ├── OptionsTest.h │ │ ├── RangeTest.cpp │ │ ├── VMTest.cpp │ │ ├── X86/ │ │ │ ├── CMakeLists.txt │ │ │ ├── InstAnalysisTest_X86.cpp │ │ │ ├── MemoryAccessTest_X86.cpp │ │ │ ├── OptionsTest_X86.cpp │ │ │ ├── VMTest_X86.cpp │ │ │ └── VMTest_X86.h │ │ └── X86_64/ │ │ ├── CMakeLists.txt │ │ ├── InstAnalysisTest_X86_64.cpp │ │ ├── MemoryAccessTest_X86_64.cpp │ │ ├── OptionsTest_X86_64.cpp │ │ ├── VMTest_X86_64.cpp │ │ └── VMTest_X86_64.h │ ├── Benchmark/ │ │ ├── CMakeLists.txt │ │ ├── Fibonacci.cpp │ │ └── SHA256.cpp │ ├── CMakeLists.txt │ ├── ExecBlock/ │ │ ├── AARCH64/ │ │ │ ├── CMakeLists.txt │ │ │ └── PatchEmptyAARCH64.cpp │ │ ├── ARM/ │ │ │ ├── CMakeLists.txt │ │ │ └── PatchEmptyARM.cpp │ │ ├── CMakeLists.txt │ │ ├── ExecBlockManagerTest.cpp │ │ ├── ExecBlockManagerTest.h │ │ ├── ExecBlockTest.cpp │ │ ├── ExecBlockTest.h │ │ ├── PatchEmpty.h │ │ ├── X86/ │ │ │ ├── CMakeLists.txt │ │ │ └── PatchEmptyX86.cpp │ │ └── X86_64/ │ │ ├── CMakeLists.txt │ │ └── PatchEmptyX86_64.cpp │ ├── Miscs/ │ │ ├── CMakeLists.txt │ │ └── StringTest.cpp │ ├── Patch/ │ │ ├── AARCH64/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ComparedExecutor_AARCH64.cpp │ │ │ ├── ComparedExecutor_AARCH64.h │ │ │ ├── LLVMOperandInfo_AARCH64.cpp │ │ │ └── MemoryAccessTable_AARCH64.cpp │ │ ├── ARM/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ComparedExecutor_ARM.cpp │ │ │ ├── ComparedExecutor_ARM.h │ │ │ ├── ComparedExecutor_Thumb.cpp │ │ │ ├── ComparedExecutor_Thumb.h │ │ │ ├── Instr_Test_ARM.cpp │ │ │ ├── Instr_Test_Thumb.cpp │ │ │ ├── Instr_Test_Thumb.h │ │ │ ├── LLVMOperandInfo_ARM.cpp │ │ │ ├── MemoryAccessTable_ARM.cpp │ │ │ ├── Patch_Test_ARM.cpp │ │ │ ├── Patch_Test_Thumb.cpp │ │ │ └── Patch_Test_Thumb.h │ │ ├── CMakeLists.txt │ │ ├── Instr_Test.cpp │ │ ├── Instr_Test.h │ │ ├── MemoryAccessTable.h │ │ ├── Patch_Test.cpp │ │ ├── Patch_Test.h │ │ ├── Utils.cpp │ │ ├── Utils.h │ │ ├── X86/ │ │ │ ├── CMakeLists.txt │ │ │ ├── ComparedExecutor_X86.cpp │ │ │ ├── ComparedExecutor_X86.h │ │ │ ├── Instr_Test_X86.cpp │ │ │ ├── Patch_Test_X86.cpp │ │ │ └── WIN86_RunRealExec.asm │ │ └── X86_64/ │ │ ├── CMakeLists.txt │ │ ├── ComparedExecutor_X86_64.cpp │ │ ├── ComparedExecutor_X86_64.h │ │ ├── Instr_Test_X86_64.cpp │ │ ├── LLVMOperandInfo_X86_64.cpp │ │ ├── MemoryAccessTable_X86_64.cpp │ │ ├── Patch_Test_X86_64.cpp │ │ └── WIN64_RunRealExec.asm │ ├── QBDIBenchmark.cpp │ ├── QBDITest.cpp │ └── TestSetup/ │ ├── AARCH64/ │ │ ├── CMakeLists.txt │ │ └── InMemoryAssembler_AARCH64.cpp │ ├── ARM/ │ │ ├── CMakeLists.txt │ │ └── InMemoryAssembler_ARM.cpp │ ├── CMakeLists.txt │ ├── InMemoryAssembler.cpp │ ├── InMemoryAssembler.h │ ├── LLVMTestEnv.h │ ├── ShellcodeTester.cpp │ ├── ShellcodeTester.h │ ├── X86/ │ │ ├── CMakeLists.txt │ │ └── InMemoryAssembler_X86.cpp │ └── X86_64/ │ ├── CMakeLists.txt │ └── InMemoryAssembler_X86_64.cpp └── tools/ ├── CMakeLists.txt ├── QBDIPreload/ │ ├── CMakeLists.txt │ ├── include/ │ │ └── QBDIPreload.h │ └── src/ │ ├── AARCH64/ │ │ ├── CMakeLists.txt │ │ ├── linux_AARCH64.c │ │ ├── linux_AARCH64.h │ │ ├── macos_AARCH64.c │ │ └── macos_AARCH64.h │ ├── ARM/ │ │ ├── CMakeLists.txt │ │ ├── linux_ARM.c │ │ └── linux_ARM.h │ ├── CMakeLists.txt │ ├── X86/ │ │ ├── CMakeLists.txt │ │ ├── linux_X86.c │ │ ├── linux_X86.h │ │ ├── macos_X86.c │ │ ├── macos_X86.h │ │ └── win_x86.asm │ ├── X86_64/ │ │ ├── CMakeLists.txt │ │ ├── linux_X86_64.c │ │ ├── linux_X86_64.h │ │ ├── macos_X86_64.c │ │ ├── macos_X86_64.h │ │ └── win_X86_64.asm │ ├── darwin_exceptd.c │ ├── darwin_exceptd.h │ ├── darwin_exception.defs │ ├── darwin_preload.c │ ├── linux_preload.c │ └── win_preload.c ├── QBDIWinPreloader/ │ ├── CMakeLists.txt │ └── src/ │ └── QBDIWinPreloader.c ├── frida-qbdi.js ├── pyqbdi/ │ ├── CMakeLists.txt │ ├── binding/ │ │ ├── AARCH64/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Options_AARCH64.cpp │ │ │ └── State_AARCH64.cpp │ │ ├── ARM/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Options_ARM.cpp │ │ │ └── State_ARM.cpp │ │ ├── CMakeLists.txt │ │ ├── Callback.cpp │ │ ├── Enum.hpp │ │ ├── Errors.cpp │ │ ├── InstAnalysis.cpp │ │ ├── Logs.cpp │ │ ├── Memory.cpp │ │ ├── Range.cpp │ │ ├── VM.cpp │ │ ├── X86/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Options_X86.cpp │ │ │ └── State_X86.cpp │ │ ├── X86_64/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Options_X86_64.cpp │ │ │ └── State_X86_64.cpp │ │ └── callback_python.h │ ├── fix_preload_lib_macos.py │ ├── preload.cpp │ ├── pyqbdi.hpp │ ├── pyqbdi_module.cpp │ ├── pyqbdipreload.py │ └── utils/ │ ├── CMakeLists.txt │ ├── Float.cpp │ └── Memory.cpp ├── validation_runner/ │ ├── RunConfig.py │ ├── RunOrchestrator.py │ ├── RunResult.py │ ├── SQLite.py │ ├── TestResult.py │ ├── ValidationRunner.py │ ├── buildbot.cfg │ ├── coverage.cfg │ ├── example.cfg │ ├── testfiles/ │ │ └── hamlet.txt │ └── travis.cfg └── validator/ ├── AARCH64/ │ ├── CMakeLists.txt │ ├── linux_AARCH64.cpp │ ├── linux_AARCH64.h │ └── validatorengine_AARCH64.cpp ├── ARM/ │ ├── CMakeLists.txt │ ├── linux_ARM.cpp │ ├── linux_ARM.h │ └── validatorengine_ARM.cpp ├── CMakeLists.txt ├── X86/ │ ├── CMakeLists.txt │ ├── linux_X86.cpp │ ├── linux_X86.h │ └── validatorengine_X86.cpp ├── X86_64/ │ ├── CMakeLists.txt │ ├── linux_X86_64.cpp │ ├── linux_X86_64.h │ └── validatorengine_X86_64.cpp ├── darwin_process.cpp ├── darwin_process.h ├── darwin_validator.cpp ├── instrumented.cpp ├── instrumented.h ├── linux_process.cpp ├── linux_process.h ├── linux_validator.cpp ├── master.cpp ├── master.h ├── pipes.cpp ├── pipes.h ├── process.h ├── validator.h ├── validatorengine.cpp └── validatorengine.h