diff --git a/pylint_rc b/pylint_rc index aa08cb9..af493bd 100644 --- a/pylint_rc +++ b/pylint_rc @@ -9,7 +9,8 @@ # Add files or directories to the blacklist. They should be base names, not # paths. -ignore=CVS,TraceEntries_pb2.py +ignore=CVS +ignore-patterns=.*_pb2\.py # Pickle collected data for later comparisons. persistent=yes diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..2f5ec89 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,81 @@ +[build-system] +requires = ["setuptools>=45", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "s2e-env" +description = "A command-line tool for administering S2E environments" +authors = [ + {name = "Adrian Herrera", email = "adrian.herrera@epfl.ch"} +] +readme = "README.md" +license = {text = "MIT"} +requires-python = ">=3.6" +classifiers = [ + "Intended Audience :: Developers", + "Environment :: Console", + "Programming Language :: Python", + "Topic :: Security", + "Topic :: Software Development", + "Topic :: System", +] +dependencies = [ + # S2E engine requirements + "docutils==0.22.2", + "pygments==2.19.2", + # s2e-env requirements + "distro==1.9.0", + "enum34==1.1.10", + "jinja2==3.1.6", + "pefile==2019.4.18", + "psutil==7.1.0", + "pyelftools @ git+https://github.com/S2E/pyelftools.git#egg=pyelftools-0.24+s2e", + "python-magic==0.4.27", + "pyyaml==6.0.2", + "requests==2.32.5", + "sh==2.2.2", + "termcolor==3.1.0", + "pytrie==0.4.0", + "pwntools==4.3.1", + "protobuf3-to-dict==0.1.5", + "immutables==0.21", + "alive_progress==3.3.0", + "protobuf==3.20.2", + # Dependencies for symchk + # TODO: replace with official release when available + # "pdbparse @ git+https://github.com/faratech/pdbparse.git@5eeff2bc11a5063f130216f929706631e8302be2", + "pefile==2019.4.18", + "construct==2.10.70", + "patool==1.12", + "pyunpack==0.2.2", + # FTP server used by image creation + "pyftpdlib==2.0.1" +] + +dynamic = ["version"] + +[project.urls] +Homepage = "http://s2e.systems" +Repository = "https://github.com/S2E/s2e-env.git" + +[project.optional-dependencies] +test = ["pytest"] + +[project.scripts] +s2e = "s2e_env.manage:main" + +[tool.setuptools] +include-package-data = true + +[tool.setuptools.packages.find] +# This will automatically find all packages + +[tool.setuptools.package-data] +s2e_env = [ + "templates/*", + "templates/plugin_creation/*", + "dat/*", +] + +[tool.setuptools.dynamic] +version = {file = "s2e_env/dat/VERSION"} diff --git a/s2e_env/commands/build.py b/s2e_env/commands/build.py index c55c498..87391d5 100644 --- a/s2e_env/commands/build.py +++ b/s2e_env/commands/build.py @@ -29,12 +29,25 @@ import sh from sh import ErrorReturnCode +from s2e_env import CONSTANTS from s2e_env.command import EnvCommand, CommandError - +from s2e_env.utils.host import get_os_version logger = logging.getLogger('build') +def _get_clang_version(): + default = CONSTANTS["clang_versions"]["default"] + os_name, os_version = get_os_version() + version = CONSTANTS["clang_versions"].get(f"{os_name}-{os_version}", None) + if version: + logger.info('Using clang-%s to build S2E', version) + return version + + logger.info('Using clang-%s to build S2E', default) + return default + + class Command(EnvCommand): """ Builds S2E. @@ -60,20 +73,53 @@ def add_arguments(self, parser): help='List of S2E components to clean prior to ' 'the build process') - def handle(self, *args, **options): + def _build_tools(self, build_dir): + makefile = self.env_path('source', 's2e', 'Makefile.tools') + if not os.path.isfile(makefile): + raise CommandError(f'{makefile} not found') + + try: + logger.info('Generating S2E build environment Docker image') + docker = sh.Command('docker') + + docker( + "build", + "--target", "s2e-build-env", + "-t", "s2e-build-env", + ".", + _out=sys.stdout, + _err=sys.stderr, + _cwd=self.env_path('source', 's2e') + ) + + logger.info('Building S2E tools in %s', build_dir) + docker( + "run", "-t", "--rm", + "-e", "SYSTEM_CLANG_VERSION=15", + "-e", f"S2E_PREFIX={self.install_path()}", + "-w", build_dir, + "-v", f"{self.env_path()}:{self.env_path()}", + "s2e-build-env", + "/run_as.sh", os.getuid(), os.getgid(), + "make", "-f", makefile, "install", + _out=sys.stdout, + _err=sys.stderr + ) + except ErrorReturnCode as e: + raise CommandError(e) from e + + logger.success('S2E tools built') + + def _build_s2e(self, build_dir, **options): # Exit if the makefile doesn't exist makefile = self.env_path('source', 'Makefile') if not os.path.isfile(makefile): - raise CommandError(f'No makefile found in {os.path.dirname(makefile)}') - - # If the build directory doesn't exist, create it - build_dir = self.env_path('build') - if not os.path.isdir(build_dir): - os.mkdir(build_dir) + raise CommandError(f'{makefile} not found') # Set up some environment variables env_vars = os.environ.copy() env_vars['S2E_PREFIX'] = self.install_path() + env_vars['SYSTEM_CLANG_VERSION'] = f"{_get_clang_version()}" components = options['components'] self._make = sh.Command('make').bake(directory=build_dir, file=makefile, _env=env_vars) @@ -96,6 +142,15 @@ def handle(self, *args, **options): logger.success('S2E built') + def handle(self, *args, **options): + # If the build directory doesn't exist, create it + build_dir = self.env_path('build') + if not os.path.isdir(build_dir): + os.mkdir(build_dir) + + self._build_tools(build_dir) + self._build_s2e(build_dir, **options) + def _get_components(self, target): lines = self._make(target).strip().split('\n') print(lines) diff --git a/s2e_env/commands/code_coverage/lcov.py b/s2e_env/commands/code_coverage/lcov.py index 18a9479..fcda92e 100644 --- a/s2e_env/commands/code_coverage/lcov.py +++ b/s2e_env/commands/code_coverage/lcov.py @@ -24,6 +24,7 @@ import logging import os +import re import sys # pylint: disable=no-name-in-module @@ -93,7 +94,17 @@ def _get_addr_coverage(directory, aggregated_coverage): return aggregated_coverage -def _save_coverage_info(lcov_path, file_line_info, ignore_missing_files): +def _is_excluded(file_path, excluded_patterns): + if not excluded_patterns: + return False + + if any(re.search(pattern, file_path) for pattern in excluded_patterns): + return True + + return False + + +def _save_coverage_info(lcov_path, file_line_info, ignore_missing_files, excluded_patterns): """ Save the line coverage information in lcov format. @@ -121,6 +132,10 @@ def _save_coverage_info(lcov_path, file_line_info, ignore_missing_files): num_non_zero_lines = 0 num_instrumented_lines = 0 + if _is_excluded(src_file, excluded_patterns): + logger.info('Excluding %s from coverage report', src_file) + continue + f.write(f'SF:{src_file}\n') for line, count in file_line_info[src_file].items(): f.write(f'DA:{line},{count}\n') @@ -177,6 +192,7 @@ def handle(self, *args, **options): for module_path, addr_counts in coverage.items(): try: cov = options.get('include_covered_files_only', False) + excluded_patterns = options.get('exclude_pattern', []) file_line_info = syms.get_coverage(module_path, addr_counts, cov) module = os.path.basename(module_path) @@ -184,7 +200,7 @@ def handle(self, *args, **options): # genhtml will throw an error if there are missing files, so we skip them # if the user enabled html reports. lcov_info_path = os.path.join(lcov_out_dir, module + '.info') - _save_coverage_info(lcov_info_path, file_line_info, do_gen_html) + _save_coverage_info(lcov_info_path, file_line_info, do_gen_html, excluded_patterns) logger.success('Line coverage saved to %s', lcov_info_path) diff --git a/s2e_env/commands/coverage.py b/s2e_env/commands/coverage.py index 9b30aa9..87104ad 100644 --- a/s2e_env/commands/coverage.py +++ b/s2e_env/commands/coverage.py @@ -53,6 +53,10 @@ def add_arguments(self, parser): help='S2E output directories to consider (default is s2e-last).', required=False) + lcov_parser.add_argument('--exclude-pattern', action='append', + help='Exclude the given pattern from the report. Can be specified multiple times.', + required=False) + lcov_parser.add_argument('--aggregate-outputs', type=int, help='Specifies n most recent s2e-out-* folders to aggregate for coverage.', required=False) diff --git a/s2e_env/commands/deps.py b/s2e_env/commands/deps.py new file mode 100644 index 0000000..20c87f2 --- /dev/null +++ b/s2e_env/commands/deps.py @@ -0,0 +1,12 @@ +from s2e_env.command import BaseCommand +from s2e_env.commands.init import install_dependencies + +class Command(BaseCommand): + """ + Installs required system packages to build and run S2E. + """ + + help = 'Install required system packages for S2E' + + def handle(self, *args, **options): + install_dependencies() diff --git a/s2e_env/commands/init.py b/s2e_env/commands/init.py index 5de4973..5cefb32 100644 --- a/s2e_env/commands/init.py +++ b/s2e_env/commands/init.py @@ -101,7 +101,7 @@ def _compute_dependencies(): return all_install_packages -def _install_dependencies(): +def install_dependencies(): """ Install S2E's dependencies. @@ -122,7 +122,7 @@ def _install_dependencies(): install_packages.append(package) install_opts = ['--no-install-recommends'] - env = {} + env = os.environ.copy() env['DEBIAN_FRONTEND'] = 'noninteractive' install_opts = ['-y'] + install_opts @@ -285,7 +285,8 @@ def add_arguments(self, parser): parser.add_argument('dir', nargs='?', default=os.getcwd(), help='The environment directory. Defaults to the ' 'current working directory') - parser.add_argument('-s', '--skip-dependencies', action='store_true', + parser.add_argument('--install-dependencies', action='store_true', + required=False, default=True, help='Skip the dependency install via apt') parser.add_argument('-b', '--use-existing-install', required=False, default=None, @@ -341,8 +342,8 @@ def handle(self, *args, **options): _link_existing_install(env_path, existing_install_path) else: # Install S2E's dependencies via apt-get - if not options['skip_dependencies']: - _install_dependencies() + if options['install_dependencies']: + install_dependencies() # Get the source repositories _get_s2e_sources(env_path, options['manifest_branch']) diff --git a/s2e_env/commands/new_project.py b/s2e_env/commands/new_project.py index cbaa545..91425e5 100644 --- a/s2e_env/commands/new_project.py +++ b/s2e_env/commands/new_project.py @@ -56,10 +56,10 @@ CGC_REGEX = re.compile(r'^CGC 32-bit') ELF32_REGEX = re.compile(r'^ELF 32-bit') ELF64_REGEX = re.compile(r'^ELF 64-bit') -DLL32_REGEX = re.compile(r'^PE32 executable \(DLL\)') -DLL64_REGEX = re.compile(r'^PE32\+ executable \(DLL\)') -WIN32_DRIVER_REGEX = re.compile(r'^PE32 executable \(native\)') -WIN64_DRIVER_REGEX = re.compile(r'^PE32\+ executable \(native\)') +DLL32_REGEX = re.compile(r'^PE32 executable.*?\(DLL\)') +DLL64_REGEX = re.compile(r'^PE32\+ executable.*?\(DLL\)') +WIN32_DRIVER_REGEX = re.compile(r'^PE32 executable.*?\(native\)') +WIN64_DRIVER_REGEX = re.compile(r'^PE32\+ executable.*?\(native\)') PE32_REGEX = re.compile(r'^PE32 executable') PE64_REGEX = re.compile(r'^PE32\+ executable') MSDOS_REGEX = re.compile(r'^MS-DOS executable') diff --git a/s2e_env/dat/config.yaml b/s2e_env/dat/config.yaml index 309ea3d..835b409 100644 --- a/s2e_env/dat/config.yaml +++ b/s2e_env/dat/config.yaml @@ -85,71 +85,68 @@ dependencies: - gcc-multilib - g++-multilib - libpixman-1-dev - - libtinfo5 - libpng-dev - libzstd-dev - libgmock-dev - libgtest-dev - - rapidjson-dev - libsoci-dev - libcapstone-dev + - libcurl4-openssl-dev # s2e-env dependencies - lcov - jq + # llvm/clang dependencies for KLEE + - libedit-dev + - libpfm4-dev + - llvm-14-dev + - clang-14 + common-debian: - wine - wine32 - wine64 - python3-docutils - - debian-11: - - fuse - - qemu + - clang-19 + - clang-format-19 debian-12: + - libtinfo5 + - fuse3 + - qemu-system-x86 + + debian-13: + - libtinfo6 - fuse3 - qemu-system-x86 common-ubuntu: - - qemu # Testing dependencies - wine-stable - ubuntu-18: - - fuse - - python-docutils - - libsdl-dev - - lib32ncurses5 - - lib32ncurses5-dev - - libncurses5-dev - - libncurses5-dev:i386 - - libx32ncurses5-dev - - - python-distro - - # Image build dependencies - - pxz - - ubuntu-20: - - fuse - - python-docutils - - libsdl-dev - - lib32ncurses-dev - - lib32ncurses6 - - libncurses5-dev - - libncurses5-dev:i386 - - # Ubuntu 20.04 doesn't have pxz package (at least not on the release date), - # so we install it manually - - http://mirrors.kernel.org/ubuntu/pool/universe/p/pxz/pxz_4.999.99~beta5+gitfcfea93-2_amd64.deb - ubuntu-22: + - libtinfo5 + - qemu + - fuse3 + - python3-docutils + - libsdl1.2-dev + + ubuntu-24: + - libtinfo6 + - qemu-system-x86 - fuse3 - python3-docutils - libsdl1.2-dev + - libpolly-14-dev + - clang-19 + - clang-format-19 +# Which compiler to use for building S2E and its dependencies. +# QEMU LLVM bitcode code is always built with clang-14. +clang_versions: + default: 19 + ubuntu-22: 14 # S2E Git repos repos: @@ -165,12 +162,11 @@ repos: required_versions: ubuntu_major_ver: - - 18 - - 20 - 22 + - 24 debian_major_ver: - - 11 - 12 + - 13 # images.json must have this version guest_images: 3 diff --git a/s2e_env/execution_trace/TraceEntries_pb2.py b/s2e_env/execution_trace/TraceEntries_pb2.py index 8beea39..e7114ad 100644 --- a/s2e_env/execution_trace/TraceEntries_pb2.py +++ b/s2e_env/execution_trace/TraceEntries_pb2.py @@ -1,12 +1,10 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: TraceEntries.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf.internal import enum_type_wrapper +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -15,1650 +13,65 @@ -DESCRIPTOR = _descriptor.FileDescriptor( - name='TraceEntries.proto', - package='s2e_trace', - syntax='proto2', - serialized_options=None, - serialized_pb=_b('\n\x12TraceEntries.proto\x12\ts2e_trace\"\xa5\x01\n\x11PbTraceItemHeader\x12\x10\n\x08state_id\x18\x01 \x02(\r\x12\x11\n\ttimestamp\x18\x02 \x02(\x04\x12\x15\n\raddress_space\x18\x03 \x02(\x04\x12\x0b\n\x03pid\x18\x04 \x02(\r\x12\x0b\n\x03tid\x18\x05 \x02(\r\x12\n\n\x02pc\x18\x06 \x02(\x04\x12.\n\x04type\x18\x07 \x02(\x0e\x32 .s2e_trace.PbTraceItemHeaderType\"#\n\x0fPbTraceItemFork\x12\x10\n\x08\x63hildren\x18\x01 \x03(\r\"\xac\x02\n\x17PbTraceModuleLoadUnload\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x0c\n\x04path\x18\x02 \x02(\t\x12\x0b\n\x03pid\x18\x03 \x02(\x04\x12\x15\n\raddress_space\x18\x04 \x02(\x04\x12<\n\x08sections\x18\x05 \x03(\x0b\x32*.s2e_trace.PbTraceModuleLoadUnload.Section\x1a\x92\x01\n\x07Section\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x19\n\x11runtime_load_base\x18\x02 \x02(\x04\x12\x18\n\x10native_load_base\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\x12\x10\n\x08readable\x18\x05 \x02(\x08\x12\x10\n\x08writable\x18\x06 \x02(\x08\x12\x12\n\nexecutable\x18\x07 \x02(\x08\"+\n\x14PbTraceProcessUnload\x12\x13\n\x0breturn_code\x18\x01 \x02(\x04\"8\n\x13PbTraceRegisterData\x12\x11\n\tsymb_mask\x18\x01 \x02(\r\x12\x0e\n\x06values\x18\x02 \x03(\x04\"k\n\rPbTraceTbData\x12)\n\x07tb_type\x18\x01 \x02(\x0e\x32\x18.s2e_trace.PbTraceTbType\x12\x10\n\x08\x66irst_pc\x18\x02 \x02(\x04\x12\x0f\n\x07last_pc\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\"t\n\x1cPbTraceTranslationBlockStart\x12&\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x18.s2e_trace.PbTraceTbData\x12,\n\x04regs\x18\x02 \x02(\x0b\x32\x1e.s2e_trace.PbTraceRegisterData\"r\n\x1aPbTraceTranslationBlockEnd\x12&\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x18.s2e_trace.PbTraceTbData\x12,\n\x04regs\x18\x02 \x02(\x0b\x32\x1e.s2e_trace.PbTraceRegisterData\"o\n\x17PbTraceTranslationBlock\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0f\n\x07last_pc\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\x12)\n\x07tb_type\x18\x04 \x02(\x0e\x32\x18.s2e_trace.PbTraceTbType\"%\n\rPbTraceOsInfo\x12\x14\n\x0ckernel_start\x18\x01 \x02(\x04\".\n\x10PbTraceException\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0e\n\x06vector\x18\x02 \x02(\r\"m\n\x0fPbTraceTestCase\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.s2e_trace.PbTraceTestCase.KeyValue\x1a&\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\x0c\"\xf6\x02\n\x13PbTraceMemoryAccess\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x02(\x04\x12\r\n\x05value\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\x12\r\n\x05\x66lags\x18\x05 \x02(\r\x12\x14\n\x0chost_address\x18\x06 \x02(\x04\x12\x17\n\x0f\x63oncrete_buffer\x18\x07 \x02(\x04\"\xe6\x01\n\x05\x46lags\x12\x19\n\x15\x45XECTRACE_MEM_INVALID\x10\x00\x12\x17\n\x13\x45XECTRACE_MEM_WRITE\x10\x01\x12\x14\n\x10\x45XECTRACE_MEM_IO\x10\x02\x12\x19\n\x15\x45XECTRACE_MEM_SYMBVAL\x10\x04\x12\x1a\n\x16\x45XECTRACE_MEM_SYMBADDR\x10\x08\x12\x1d\n\x19\x45XECTRACE_MEM_HASHOSTADDR\x10\x10\x12\x1e\n\x1a\x45XECTRACE_MEM_SYMBHOSTADDR\x10 \x12\x1d\n\x19\x45XECTRACE_MEM_OBJECTSTATE\x10@\"J\n\x19PbTraceSimpleMemoryAccess\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x02(\x04\x12\x10\n\x08is_write\x18\x03 \x02(\x08\"(\n\x17PbTraceInstructionCount\x12\r\n\x05\x63ount\x18\x01 \x02(\x04\"\'\n\x12PbTraceStateSwitch\x12\x11\n\tnew_state\x18\x01 \x02(\r\"\x87\x01\n\x15PbTraceCacheSimParams\x12\x10\n\x08\x63\x61\x63he_id\x18\x01 \x02(\r\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\x11\n\tline_size\x18\x03 \x02(\r\x12\x15\n\rassociativity\x18\x04 \x02(\r\x12\x16\n\x0eupper_cache_id\x18\x05 \x02(\r\x12\x0c\n\x04name\x18\x06 \x02(\t\"\x8a\x01\n\x14PbTraceCacheSimEntry\x12\x10\n\x08\x63\x61\x63he_id\x18\x01 \x02(\r\x12\n\n\x02pc\x18\x02 \x02(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\x12\x12\n\nmiss_count\x18\x05 \x02(\r\x12\x10\n\x08is_write\x18\x06 \x02(\x08\x12\x0f\n\x07is_code\x18\x07 \x02(\x08\"\x98\x04\n\x0fPbTraceCfiStats\x12\x19\n\x11\x64irect_call_count\x18\x01 \x02(\x04\x12\x1b\n\x13indirect_call_count\x18\x02 \x02(\x04\x12\x11\n\tret_count\x18\x03 \x02(\x04\x12\x1c\n\x14\x63\x61ll_violation_count\x18\x04 \x02(\x04\x12\x1b\n\x13ret_violation_count\x18\x06 \x02(\x04\x12*\n\"ret_from_unknown_exec_region_count\x18\t \x02(\x04\x12(\n ret_to_unknown_exec_region_count\x18\n \x02(\x04\x12$\n\x1cmissing_return_address_count\x18\x0b \x02(\x04\x12#\n\x1b\x63\x61ll_and_return_match_count\x18\x0c \x02(\x04\x12 \n\x18whitelisted_return_count\x18\r \x02(\x04\x12 \n\x18pending_violations_count\x18\x0e \x02(\x04\x12&\n\x1ewhitelisted_call_pattern_count\x18\x0f \x02(\x04\x12-\n%ret_to_parent_with_displacement_count\x18\x10 \x02(\x04\x12)\n!call_to_unknown_exec_region_count\x18\x11 \x02(\x04\x12\x18\n\x10ret_to_call_site\x18\x12 \x02(\x04\"a\n\x16PbTraceViolationPcInfo\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x13\n\x0bmodule_path\x18\x02 \x01(\t\x12\x11\n\tmodule_pc\x18\x03 \x01(\x04\x12\x13\n\x0b\x64isassembly\x18\x04 \x01(\t\"\xf3\x01\n\x13PbTraceCfiViolation\x12\x30\n\x04type\x18\x01 \x02(\x0e\x32\".s2e_trace.PbTraceCfiViolationType\x12\x31\n\x06source\x18\x02 \x02(\x0b\x32!.s2e_trace.PbTraceViolationPcInfo\x12\x36\n\x0b\x64\x65stination\x18\x03 \x02(\x0b\x32!.s2e_trace.PbTraceViolationPcInfo\x12?\n\x14\x65xpected_destination\x18\x04 \x01(\x0b\x32!.s2e_trace.PbTraceViolationPcInfo*\xa3\x03\n\x15PbTraceItemHeaderType\x12\x0e\n\nTRACE_FORK\x10\x00\x12\x12\n\x0eTRACE_MOD_LOAD\x10\x01\x12\x14\n\x10TRACE_MOD_UNLOAD\x10\x02\x12\x15\n\x11TRACE_PROC_UNLOAD\x10\x03\x12\x12\n\x0eTRACE_TB_START\x10\x04\x12\x10\n\x0cTRACE_TB_END\x10\x05\x12\x10\n\x0cTRACE_OSINFO\x10\x08\x12\x13\n\x0fTRACE_EXCEPTION\x10\t\x12\x12\n\x0eTRACE_TESTCASE\x10\n\x12\x10\n\x0cTRACE_MEMORY\x10\x0b\x12\x13\n\x0fTRACE_PAGEFAULT\x10\x0c\x12\x11\n\rTRACE_TLBMISS\x10\r\x12\x10\n\x0cTRACE_ICOUNT\x10\x0e\x12\x16\n\x12TRACE_STATE_SWITCH\x10\x0f\x12\x0f\n\x0bTRACE_BLOCK\x10\x10\x12\x1a\n\x16TRACE_CACHE_SIM_PARAMS\x10\x11\x12\x19\n\x15TRACE_CACHE_SIM_ENTRY\x10\x12\x12\x13\n\x0fTRACE_CFI_STATS\x10\x13\x12\x17\n\x13TRACE_CFI_VIOLATION\x10\x14*\xc2\x01\n\rPbTraceTbType\x12\x0e\n\nTB_DEFAULT\x10\x00\x12\n\n\x06TB_JMP\x10\x01\x12\x0e\n\nTB_JMP_IND\x10\x02\x12\x0f\n\x0bTB_COND_JMP\x10\x03\x12\x13\n\x0fTB_COND_JMP_IND\x10\x04\x12\x0b\n\x07TB_CALL\x10\x05\x12\x0f\n\x0bTB_CALL_IND\x10\x06\x12\n\n\x06TB_REP\x10\x07\x12\n\n\x06TB_RET\x10\x08\x12\x0b\n\x07TB_IRET\x10\t\x12\x0b\n\x07TB_EXCP\x10\n\x12\x0f\n\x0bTB_SYSENTER\x10\x0b*C\n\x17PbTraceCfiViolationType\x12\x12\n\x0e\x43\x41LL_VIOLATION\x10\x00\x12\x14\n\x10RETURN_VIOLATION\x10\x01') -) - -_PBTRACEITEMHEADERTYPE = _descriptor.EnumDescriptor( - name='PbTraceItemHeaderType', - full_name='s2e_trace.PbTraceItemHeaderType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='TRACE_FORK', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_MOD_LOAD', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_MOD_UNLOAD', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_PROC_UNLOAD', index=3, number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_TB_START', index=4, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_TB_END', index=5, number=5, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_OSINFO', index=6, number=8, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_EXCEPTION', index=7, number=9, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_TESTCASE', index=8, number=10, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_MEMORY', index=9, number=11, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_PAGEFAULT', index=10, number=12, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_TLBMISS', index=11, number=13, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_ICOUNT', index=12, number=14, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_STATE_SWITCH', index=13, number=15, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_BLOCK', index=14, number=16, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_CACHE_SIM_PARAMS', index=15, number=17, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_CACHE_SIM_ENTRY', index=16, number=18, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_CFI_STATS', index=17, number=19, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TRACE_CFI_VIOLATION', index=18, number=20, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2998, - serialized_end=3417, -) -_sym_db.RegisterEnumDescriptor(_PBTRACEITEMHEADERTYPE) - -PbTraceItemHeaderType = enum_type_wrapper.EnumTypeWrapper(_PBTRACEITEMHEADERTYPE) -_PBTRACETBTYPE = _descriptor.EnumDescriptor( - name='PbTraceTbType', - full_name='s2e_trace.PbTraceTbType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='TB_DEFAULT', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_JMP', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_JMP_IND', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_COND_JMP', index=3, number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_COND_JMP_IND', index=4, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_CALL', index=5, number=5, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_CALL_IND', index=6, number=6, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_REP', index=7, number=7, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_RET', index=8, number=8, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_IRET', index=9, number=9, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_EXCP', index=10, number=10, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='TB_SYSENTER', index=11, number=11, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=3420, - serialized_end=3614, -) -_sym_db.RegisterEnumDescriptor(_PBTRACETBTYPE) - -PbTraceTbType = enum_type_wrapper.EnumTypeWrapper(_PBTRACETBTYPE) -_PBTRACECFIVIOLATIONTYPE = _descriptor.EnumDescriptor( - name='PbTraceCfiViolationType', - full_name='s2e_trace.PbTraceCfiViolationType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='CALL_VIOLATION', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='RETURN_VIOLATION', index=1, number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=3616, - serialized_end=3683, -) -_sym_db.RegisterEnumDescriptor(_PBTRACECFIVIOLATIONTYPE) - -PbTraceCfiViolationType = enum_type_wrapper.EnumTypeWrapper(_PBTRACECFIVIOLATIONTYPE) -TRACE_FORK = 0 -TRACE_MOD_LOAD = 1 -TRACE_MOD_UNLOAD = 2 -TRACE_PROC_UNLOAD = 3 -TRACE_TB_START = 4 -TRACE_TB_END = 5 -TRACE_OSINFO = 8 -TRACE_EXCEPTION = 9 -TRACE_TESTCASE = 10 -TRACE_MEMORY = 11 -TRACE_PAGEFAULT = 12 -TRACE_TLBMISS = 13 -TRACE_ICOUNT = 14 -TRACE_STATE_SWITCH = 15 -TRACE_BLOCK = 16 -TRACE_CACHE_SIM_PARAMS = 17 -TRACE_CACHE_SIM_ENTRY = 18 -TRACE_CFI_STATS = 19 -TRACE_CFI_VIOLATION = 20 -TB_DEFAULT = 0 -TB_JMP = 1 -TB_JMP_IND = 2 -TB_COND_JMP = 3 -TB_COND_JMP_IND = 4 -TB_CALL = 5 -TB_CALL_IND = 6 -TB_REP = 7 -TB_RET = 8 -TB_IRET = 9 -TB_EXCP = 10 -TB_SYSENTER = 11 -CALL_VIOLATION = 0 -RETURN_VIOLATION = 1 - - -_PBTRACEMEMORYACCESS_FLAGS = _descriptor.EnumDescriptor( - name='Flags', - full_name='s2e_trace.PbTraceMemoryAccess.Flags', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_INVALID', index=0, number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_WRITE', index=1, number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_IO', index=2, number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_SYMBVAL', index=3, number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_SYMBADDR', index=4, number=8, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_HASHOSTADDR', index=5, number=16, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_SYMBHOSTADDR', index=6, number=32, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor( - name='EXECTRACE_MEM_OBJECTSTATE', index=7, number=64, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=1443, - serialized_end=1673, -) -_sym_db.RegisterEnumDescriptor(_PBTRACEMEMORYACCESS_FLAGS) - - -_PBTRACEITEMHEADER = _descriptor.Descriptor( - name='PbTraceItemHeader', - full_name='s2e_trace.PbTraceItemHeader', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='state_id', full_name='s2e_trace.PbTraceItemHeader.state_id', index=0, - number=1, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='timestamp', full_name='s2e_trace.PbTraceItemHeader.timestamp', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='address_space', full_name='s2e_trace.PbTraceItemHeader.address_space', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pid', full_name='s2e_trace.PbTraceItemHeader.pid', index=3, - number=4, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tid', full_name='s2e_trace.PbTraceItemHeader.tid', index=4, - number=5, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pc', full_name='s2e_trace.PbTraceItemHeader.pc', index=5, - number=6, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='type', full_name='s2e_trace.PbTraceItemHeader.type', index=6, - number=7, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=34, - serialized_end=199, -) - - -_PBTRACEITEMFORK = _descriptor.Descriptor( - name='PbTraceItemFork', - full_name='s2e_trace.PbTraceItemFork', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='children', full_name='s2e_trace.PbTraceItemFork.children', index=0, - number=1, type=13, cpp_type=3, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=201, - serialized_end=236, -) - - -_PBTRACEMODULELOADUNLOAD_SECTION = _descriptor.Descriptor( - name='Section', - full_name='s2e_trace.PbTraceModuleLoadUnload.Section', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='s2e_trace.PbTraceModuleLoadUnload.Section.name', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='runtime_load_base', full_name='s2e_trace.PbTraceModuleLoadUnload.Section.runtime_load_base', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='native_load_base', full_name='s2e_trace.PbTraceModuleLoadUnload.Section.native_load_base', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size', full_name='s2e_trace.PbTraceModuleLoadUnload.Section.size', index=3, - number=4, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='readable', full_name='s2e_trace.PbTraceModuleLoadUnload.Section.readable', index=4, - number=5, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='writable', full_name='s2e_trace.PbTraceModuleLoadUnload.Section.writable', index=5, - number=6, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='executable', full_name='s2e_trace.PbTraceModuleLoadUnload.Section.executable', index=6, - number=7, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=393, - serialized_end=539, -) - -_PBTRACEMODULELOADUNLOAD = _descriptor.Descriptor( - name='PbTraceModuleLoadUnload', - full_name='s2e_trace.PbTraceModuleLoadUnload', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='s2e_trace.PbTraceModuleLoadUnload.name', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='path', full_name='s2e_trace.PbTraceModuleLoadUnload.path', index=1, - number=2, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pid', full_name='s2e_trace.PbTraceModuleLoadUnload.pid', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='address_space', full_name='s2e_trace.PbTraceModuleLoadUnload.address_space', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='sections', full_name='s2e_trace.PbTraceModuleLoadUnload.sections', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_PBTRACEMODULELOADUNLOAD_SECTION, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=239, - serialized_end=539, -) - - -_PBTRACEPROCESSUNLOAD = _descriptor.Descriptor( - name='PbTraceProcessUnload', - full_name='s2e_trace.PbTraceProcessUnload', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='return_code', full_name='s2e_trace.PbTraceProcessUnload.return_code', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=541, - serialized_end=584, -) - - -_PBTRACEREGISTERDATA = _descriptor.Descriptor( - name='PbTraceRegisterData', - full_name='s2e_trace.PbTraceRegisterData', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='symb_mask', full_name='s2e_trace.PbTraceRegisterData.symb_mask', index=0, - number=1, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='values', full_name='s2e_trace.PbTraceRegisterData.values', index=1, - number=2, type=4, cpp_type=4, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=586, - serialized_end=642, -) - - -_PBTRACETBDATA = _descriptor.Descriptor( - name='PbTraceTbData', - full_name='s2e_trace.PbTraceTbData', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='tb_type', full_name='s2e_trace.PbTraceTbData.tb_type', index=0, - number=1, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='first_pc', full_name='s2e_trace.PbTraceTbData.first_pc', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='last_pc', full_name='s2e_trace.PbTraceTbData.last_pc', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size', full_name='s2e_trace.PbTraceTbData.size', index=3, - number=4, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=644, - serialized_end=751, -) - - -_PBTRACETRANSLATIONBLOCKSTART = _descriptor.Descriptor( - name='PbTraceTranslationBlockStart', - full_name='s2e_trace.PbTraceTranslationBlockStart', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='data', full_name='s2e_trace.PbTraceTranslationBlockStart.data', index=0, - number=1, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='regs', full_name='s2e_trace.PbTraceTranslationBlockStart.regs', index=1, - number=2, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=753, - serialized_end=869, -) - - -_PBTRACETRANSLATIONBLOCKEND = _descriptor.Descriptor( - name='PbTraceTranslationBlockEnd', - full_name='s2e_trace.PbTraceTranslationBlockEnd', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='data', full_name='s2e_trace.PbTraceTranslationBlockEnd.data', index=0, - number=1, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='regs', full_name='s2e_trace.PbTraceTranslationBlockEnd.regs', index=1, - number=2, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=871, - serialized_end=985, -) - - -_PBTRACETRANSLATIONBLOCK = _descriptor.Descriptor( - name='PbTraceTranslationBlock', - full_name='s2e_trace.PbTraceTranslationBlock', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pc', full_name='s2e_trace.PbTraceTranslationBlock.pc', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='last_pc', full_name='s2e_trace.PbTraceTranslationBlock.last_pc', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size', full_name='s2e_trace.PbTraceTranslationBlock.size', index=2, - number=3, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tb_type', full_name='s2e_trace.PbTraceTranslationBlock.tb_type', index=3, - number=4, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=987, - serialized_end=1098, -) - - -_PBTRACEOSINFO = _descriptor.Descriptor( - name='PbTraceOsInfo', - full_name='s2e_trace.PbTraceOsInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='kernel_start', full_name='s2e_trace.PbTraceOsInfo.kernel_start', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1100, - serialized_end=1137, -) - - -_PBTRACEEXCEPTION = _descriptor.Descriptor( - name='PbTraceException', - full_name='s2e_trace.PbTraceException', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pc', full_name='s2e_trace.PbTraceException.pc', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='vector', full_name='s2e_trace.PbTraceException.vector', index=1, - number=2, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1139, - serialized_end=1185, -) - - -_PBTRACETESTCASE_KEYVALUE = _descriptor.Descriptor( - name='KeyValue', - full_name='s2e_trace.PbTraceTestCase.KeyValue', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='s2e_trace.PbTraceTestCase.KeyValue.key', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='s2e_trace.PbTraceTestCase.KeyValue.value', index=1, - number=2, type=12, cpp_type=9, label=2, - has_default_value=False, default_value=_b(""), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1258, - serialized_end=1296, -) - -_PBTRACETESTCASE = _descriptor.Descriptor( - name='PbTraceTestCase', - full_name='s2e_trace.PbTraceTestCase', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='items', full_name='s2e_trace.PbTraceTestCase.items', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[_PBTRACETESTCASE_KEYVALUE, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1187, - serialized_end=1296, -) - - -_PBTRACEMEMORYACCESS = _descriptor.Descriptor( - name='PbTraceMemoryAccess', - full_name='s2e_trace.PbTraceMemoryAccess', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pc', full_name='s2e_trace.PbTraceMemoryAccess.pc', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='address', full_name='s2e_trace.PbTraceMemoryAccess.address', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='value', full_name='s2e_trace.PbTraceMemoryAccess.value', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size', full_name='s2e_trace.PbTraceMemoryAccess.size', index=3, - number=4, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='flags', full_name='s2e_trace.PbTraceMemoryAccess.flags', index=4, - number=5, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='host_address', full_name='s2e_trace.PbTraceMemoryAccess.host_address', index=5, - number=6, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='concrete_buffer', full_name='s2e_trace.PbTraceMemoryAccess.concrete_buffer', index=6, - number=7, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _PBTRACEMEMORYACCESS_FLAGS, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1299, - serialized_end=1673, -) - - -_PBTRACESIMPLEMEMORYACCESS = _descriptor.Descriptor( - name='PbTraceSimpleMemoryAccess', - full_name='s2e_trace.PbTraceSimpleMemoryAccess', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pc', full_name='s2e_trace.PbTraceSimpleMemoryAccess.pc', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='address', full_name='s2e_trace.PbTraceSimpleMemoryAccess.address', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='is_write', full_name='s2e_trace.PbTraceSimpleMemoryAccess.is_write', index=2, - number=3, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1675, - serialized_end=1749, -) - - -_PBTRACEINSTRUCTIONCOUNT = _descriptor.Descriptor( - name='PbTraceInstructionCount', - full_name='s2e_trace.PbTraceInstructionCount', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='count', full_name='s2e_trace.PbTraceInstructionCount.count', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1751, - serialized_end=1791, -) - - -_PBTRACESTATESWITCH = _descriptor.Descriptor( - name='PbTraceStateSwitch', - full_name='s2e_trace.PbTraceStateSwitch', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='new_state', full_name='s2e_trace.PbTraceStateSwitch.new_state', index=0, - number=1, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1793, - serialized_end=1832, -) - - -_PBTRACECACHESIMPARAMS = _descriptor.Descriptor( - name='PbTraceCacheSimParams', - full_name='s2e_trace.PbTraceCacheSimParams', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='cache_id', full_name='s2e_trace.PbTraceCacheSimParams.cache_id', index=0, - number=1, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size', full_name='s2e_trace.PbTraceCacheSimParams.size', index=1, - number=2, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='line_size', full_name='s2e_trace.PbTraceCacheSimParams.line_size', index=2, - number=3, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='associativity', full_name='s2e_trace.PbTraceCacheSimParams.associativity', index=3, - number=4, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='upper_cache_id', full_name='s2e_trace.PbTraceCacheSimParams.upper_cache_id', index=4, - number=5, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='name', full_name='s2e_trace.PbTraceCacheSimParams.name', index=5, - number=6, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1835, - serialized_end=1970, -) - - -_PBTRACECACHESIMENTRY = _descriptor.Descriptor( - name='PbTraceCacheSimEntry', - full_name='s2e_trace.PbTraceCacheSimEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='cache_id', full_name='s2e_trace.PbTraceCacheSimEntry.cache_id', index=0, - number=1, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pc', full_name='s2e_trace.PbTraceCacheSimEntry.pc', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='address', full_name='s2e_trace.PbTraceCacheSimEntry.address', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='size', full_name='s2e_trace.PbTraceCacheSimEntry.size', index=3, - number=4, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='miss_count', full_name='s2e_trace.PbTraceCacheSimEntry.miss_count', index=4, - number=5, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='is_write', full_name='s2e_trace.PbTraceCacheSimEntry.is_write', index=5, - number=6, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='is_code', full_name='s2e_trace.PbTraceCacheSimEntry.is_code', index=6, - number=7, type=8, cpp_type=7, label=2, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1973, - serialized_end=2111, -) - - -_PBTRACECFISTATS = _descriptor.Descriptor( - name='PbTraceCfiStats', - full_name='s2e_trace.PbTraceCfiStats', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='direct_call_count', full_name='s2e_trace.PbTraceCfiStats.direct_call_count', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='indirect_call_count', full_name='s2e_trace.PbTraceCfiStats.indirect_call_count', index=1, - number=2, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ret_count', full_name='s2e_trace.PbTraceCfiStats.ret_count', index=2, - number=3, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='call_violation_count', full_name='s2e_trace.PbTraceCfiStats.call_violation_count', index=3, - number=4, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ret_violation_count', full_name='s2e_trace.PbTraceCfiStats.ret_violation_count', index=4, - number=6, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ret_from_unknown_exec_region_count', full_name='s2e_trace.PbTraceCfiStats.ret_from_unknown_exec_region_count', index=5, - number=9, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ret_to_unknown_exec_region_count', full_name='s2e_trace.PbTraceCfiStats.ret_to_unknown_exec_region_count', index=6, - number=10, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='missing_return_address_count', full_name='s2e_trace.PbTraceCfiStats.missing_return_address_count', index=7, - number=11, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='call_and_return_match_count', full_name='s2e_trace.PbTraceCfiStats.call_and_return_match_count', index=8, - number=12, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='whitelisted_return_count', full_name='s2e_trace.PbTraceCfiStats.whitelisted_return_count', index=9, - number=13, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pending_violations_count', full_name='s2e_trace.PbTraceCfiStats.pending_violations_count', index=10, - number=14, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='whitelisted_call_pattern_count', full_name='s2e_trace.PbTraceCfiStats.whitelisted_call_pattern_count', index=11, - number=15, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ret_to_parent_with_displacement_count', full_name='s2e_trace.PbTraceCfiStats.ret_to_parent_with_displacement_count', index=12, - number=16, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='call_to_unknown_exec_region_count', full_name='s2e_trace.PbTraceCfiStats.call_to_unknown_exec_region_count', index=13, - number=17, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ret_to_call_site', full_name='s2e_trace.PbTraceCfiStats.ret_to_call_site', index=14, - number=18, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2114, - serialized_end=2650, -) - - -_PBTRACEVIOLATIONPCINFO = _descriptor.Descriptor( - name='PbTraceViolationPcInfo', - full_name='s2e_trace.PbTraceViolationPcInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pc', full_name='s2e_trace.PbTraceViolationPcInfo.pc', index=0, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='module_path', full_name='s2e_trace.PbTraceViolationPcInfo.module_path', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='module_pc', full_name='s2e_trace.PbTraceViolationPcInfo.module_pc', index=2, - number=3, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='disassembly', full_name='s2e_trace.PbTraceViolationPcInfo.disassembly', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2652, - serialized_end=2749, -) - - -_PBTRACECFIVIOLATION = _descriptor.Descriptor( - name='PbTraceCfiViolation', - full_name='s2e_trace.PbTraceCfiViolation', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='type', full_name='s2e_trace.PbTraceCfiViolation.type', index=0, - number=1, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='source', full_name='s2e_trace.PbTraceCfiViolation.source', index=1, - number=2, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='destination', full_name='s2e_trace.PbTraceCfiViolation.destination', index=2, - number=3, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='expected_destination', full_name='s2e_trace.PbTraceCfiViolation.expected_destination', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2752, - serialized_end=2995, -) - -_PBTRACEITEMHEADER.fields_by_name['type'].enum_type = _PBTRACEITEMHEADERTYPE -_PBTRACEMODULELOADUNLOAD_SECTION.containing_type = _PBTRACEMODULELOADUNLOAD -_PBTRACEMODULELOADUNLOAD.fields_by_name['sections'].message_type = _PBTRACEMODULELOADUNLOAD_SECTION -_PBTRACETBDATA.fields_by_name['tb_type'].enum_type = _PBTRACETBTYPE -_PBTRACETRANSLATIONBLOCKSTART.fields_by_name['data'].message_type = _PBTRACETBDATA -_PBTRACETRANSLATIONBLOCKSTART.fields_by_name['regs'].message_type = _PBTRACEREGISTERDATA -_PBTRACETRANSLATIONBLOCKEND.fields_by_name['data'].message_type = _PBTRACETBDATA -_PBTRACETRANSLATIONBLOCKEND.fields_by_name['regs'].message_type = _PBTRACEREGISTERDATA -_PBTRACETRANSLATIONBLOCK.fields_by_name['tb_type'].enum_type = _PBTRACETBTYPE -_PBTRACETESTCASE_KEYVALUE.containing_type = _PBTRACETESTCASE -_PBTRACETESTCASE.fields_by_name['items'].message_type = _PBTRACETESTCASE_KEYVALUE -_PBTRACEMEMORYACCESS_FLAGS.containing_type = _PBTRACEMEMORYACCESS -_PBTRACECFIVIOLATION.fields_by_name['type'].enum_type = _PBTRACECFIVIOLATIONTYPE -_PBTRACECFIVIOLATION.fields_by_name['source'].message_type = _PBTRACEVIOLATIONPCINFO -_PBTRACECFIVIOLATION.fields_by_name['destination'].message_type = _PBTRACEVIOLATIONPCINFO -_PBTRACECFIVIOLATION.fields_by_name['expected_destination'].message_type = _PBTRACEVIOLATIONPCINFO -DESCRIPTOR.message_types_by_name['PbTraceItemHeader'] = _PBTRACEITEMHEADER -DESCRIPTOR.message_types_by_name['PbTraceItemFork'] = _PBTRACEITEMFORK -DESCRIPTOR.message_types_by_name['PbTraceModuleLoadUnload'] = _PBTRACEMODULELOADUNLOAD -DESCRIPTOR.message_types_by_name['PbTraceProcessUnload'] = _PBTRACEPROCESSUNLOAD -DESCRIPTOR.message_types_by_name['PbTraceRegisterData'] = _PBTRACEREGISTERDATA -DESCRIPTOR.message_types_by_name['PbTraceTbData'] = _PBTRACETBDATA -DESCRIPTOR.message_types_by_name['PbTraceTranslationBlockStart'] = _PBTRACETRANSLATIONBLOCKSTART -DESCRIPTOR.message_types_by_name['PbTraceTranslationBlockEnd'] = _PBTRACETRANSLATIONBLOCKEND -DESCRIPTOR.message_types_by_name['PbTraceTranslationBlock'] = _PBTRACETRANSLATIONBLOCK -DESCRIPTOR.message_types_by_name['PbTraceOsInfo'] = _PBTRACEOSINFO -DESCRIPTOR.message_types_by_name['PbTraceException'] = _PBTRACEEXCEPTION -DESCRIPTOR.message_types_by_name['PbTraceTestCase'] = _PBTRACETESTCASE -DESCRIPTOR.message_types_by_name['PbTraceMemoryAccess'] = _PBTRACEMEMORYACCESS -DESCRIPTOR.message_types_by_name['PbTraceSimpleMemoryAccess'] = _PBTRACESIMPLEMEMORYACCESS -DESCRIPTOR.message_types_by_name['PbTraceInstructionCount'] = _PBTRACEINSTRUCTIONCOUNT -DESCRIPTOR.message_types_by_name['PbTraceStateSwitch'] = _PBTRACESTATESWITCH -DESCRIPTOR.message_types_by_name['PbTraceCacheSimParams'] = _PBTRACECACHESIMPARAMS -DESCRIPTOR.message_types_by_name['PbTraceCacheSimEntry'] = _PBTRACECACHESIMENTRY -DESCRIPTOR.message_types_by_name['PbTraceCfiStats'] = _PBTRACECFISTATS -DESCRIPTOR.message_types_by_name['PbTraceViolationPcInfo'] = _PBTRACEVIOLATIONPCINFO -DESCRIPTOR.message_types_by_name['PbTraceCfiViolation'] = _PBTRACECFIVIOLATION -DESCRIPTOR.enum_types_by_name['PbTraceItemHeaderType'] = _PBTRACEITEMHEADERTYPE -DESCRIPTOR.enum_types_by_name['PbTraceTbType'] = _PBTRACETBTYPE -DESCRIPTOR.enum_types_by_name['PbTraceCfiViolationType'] = _PBTRACECFIVIOLATIONTYPE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -PbTraceItemHeader = _reflection.GeneratedProtocolMessageType('PbTraceItemHeader', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEITEMHEADER, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceItemHeader) - )) -_sym_db.RegisterMessage(PbTraceItemHeader) - -PbTraceItemFork = _reflection.GeneratedProtocolMessageType('PbTraceItemFork', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEITEMFORK, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceItemFork) - )) -_sym_db.RegisterMessage(PbTraceItemFork) - -PbTraceModuleLoadUnload = _reflection.GeneratedProtocolMessageType('PbTraceModuleLoadUnload', (_message.Message,), dict( - - Section = _reflection.GeneratedProtocolMessageType('Section', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEMODULELOADUNLOAD_SECTION, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceModuleLoadUnload.Section) - )) - , - DESCRIPTOR = _PBTRACEMODULELOADUNLOAD, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceModuleLoadUnload) - )) -_sym_db.RegisterMessage(PbTraceModuleLoadUnload) -_sym_db.RegisterMessage(PbTraceModuleLoadUnload.Section) - -PbTraceProcessUnload = _reflection.GeneratedProtocolMessageType('PbTraceProcessUnload', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEPROCESSUNLOAD, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceProcessUnload) - )) -_sym_db.RegisterMessage(PbTraceProcessUnload) - -PbTraceRegisterData = _reflection.GeneratedProtocolMessageType('PbTraceRegisterData', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEREGISTERDATA, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceRegisterData) - )) -_sym_db.RegisterMessage(PbTraceRegisterData) - -PbTraceTbData = _reflection.GeneratedProtocolMessageType('PbTraceTbData', (_message.Message,), dict( - DESCRIPTOR = _PBTRACETBDATA, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceTbData) - )) -_sym_db.RegisterMessage(PbTraceTbData) - -PbTraceTranslationBlockStart = _reflection.GeneratedProtocolMessageType('PbTraceTranslationBlockStart', (_message.Message,), dict( - DESCRIPTOR = _PBTRACETRANSLATIONBLOCKSTART, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceTranslationBlockStart) - )) -_sym_db.RegisterMessage(PbTraceTranslationBlockStart) - -PbTraceTranslationBlockEnd = _reflection.GeneratedProtocolMessageType('PbTraceTranslationBlockEnd', (_message.Message,), dict( - DESCRIPTOR = _PBTRACETRANSLATIONBLOCKEND, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceTranslationBlockEnd) - )) -_sym_db.RegisterMessage(PbTraceTranslationBlockEnd) - -PbTraceTranslationBlock = _reflection.GeneratedProtocolMessageType('PbTraceTranslationBlock', (_message.Message,), dict( - DESCRIPTOR = _PBTRACETRANSLATIONBLOCK, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceTranslationBlock) - )) -_sym_db.RegisterMessage(PbTraceTranslationBlock) - -PbTraceOsInfo = _reflection.GeneratedProtocolMessageType('PbTraceOsInfo', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEOSINFO, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceOsInfo) - )) -_sym_db.RegisterMessage(PbTraceOsInfo) - -PbTraceException = _reflection.GeneratedProtocolMessageType('PbTraceException', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEEXCEPTION, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceException) - )) -_sym_db.RegisterMessage(PbTraceException) - -PbTraceTestCase = _reflection.GeneratedProtocolMessageType('PbTraceTestCase', (_message.Message,), dict( - - KeyValue = _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), dict( - DESCRIPTOR = _PBTRACETESTCASE_KEYVALUE, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceTestCase.KeyValue) - )) - , - DESCRIPTOR = _PBTRACETESTCASE, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceTestCase) - )) -_sym_db.RegisterMessage(PbTraceTestCase) -_sym_db.RegisterMessage(PbTraceTestCase.KeyValue) - -PbTraceMemoryAccess = _reflection.GeneratedProtocolMessageType('PbTraceMemoryAccess', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEMEMORYACCESS, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceMemoryAccess) - )) -_sym_db.RegisterMessage(PbTraceMemoryAccess) - -PbTraceSimpleMemoryAccess = _reflection.GeneratedProtocolMessageType('PbTraceSimpleMemoryAccess', (_message.Message,), dict( - DESCRIPTOR = _PBTRACESIMPLEMEMORYACCESS, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceSimpleMemoryAccess) - )) -_sym_db.RegisterMessage(PbTraceSimpleMemoryAccess) - -PbTraceInstructionCount = _reflection.GeneratedProtocolMessageType('PbTraceInstructionCount', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEINSTRUCTIONCOUNT, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceInstructionCount) - )) -_sym_db.RegisterMessage(PbTraceInstructionCount) - -PbTraceStateSwitch = _reflection.GeneratedProtocolMessageType('PbTraceStateSwitch', (_message.Message,), dict( - DESCRIPTOR = _PBTRACESTATESWITCH, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceStateSwitch) - )) -_sym_db.RegisterMessage(PbTraceStateSwitch) - -PbTraceCacheSimParams = _reflection.GeneratedProtocolMessageType('PbTraceCacheSimParams', (_message.Message,), dict( - DESCRIPTOR = _PBTRACECACHESIMPARAMS, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceCacheSimParams) - )) -_sym_db.RegisterMessage(PbTraceCacheSimParams) - -PbTraceCacheSimEntry = _reflection.GeneratedProtocolMessageType('PbTraceCacheSimEntry', (_message.Message,), dict( - DESCRIPTOR = _PBTRACECACHESIMENTRY, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceCacheSimEntry) - )) -_sym_db.RegisterMessage(PbTraceCacheSimEntry) - -PbTraceCfiStats = _reflection.GeneratedProtocolMessageType('PbTraceCfiStats', (_message.Message,), dict( - DESCRIPTOR = _PBTRACECFISTATS, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceCfiStats) - )) -_sym_db.RegisterMessage(PbTraceCfiStats) - -PbTraceViolationPcInfo = _reflection.GeneratedProtocolMessageType('PbTraceViolationPcInfo', (_message.Message,), dict( - DESCRIPTOR = _PBTRACEVIOLATIONPCINFO, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceViolationPcInfo) - )) -_sym_db.RegisterMessage(PbTraceViolationPcInfo) - -PbTraceCfiViolation = _reflection.GeneratedProtocolMessageType('PbTraceCfiViolation', (_message.Message,), dict( - DESCRIPTOR = _PBTRACECFIVIOLATION, - __module__ = 'TraceEntries_pb2' - # @@protoc_insertion_point(class_scope:s2e_trace.PbTraceCfiViolation) - )) -_sym_db.RegisterMessage(PbTraceCfiViolation) - - +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12TraceEntries.proto\x12\ts2e_trace\"\xa5\x01\n\x11PbTraceItemHeader\x12\x10\n\x08state_id\x18\x01 \x02(\r\x12\x11\n\ttimestamp\x18\x02 \x02(\x04\x12\x15\n\raddress_space\x18\x03 \x02(\x04\x12\x0b\n\x03pid\x18\x04 \x02(\r\x12\x0b\n\x03tid\x18\x05 \x02(\r\x12\n\n\x02pc\x18\x06 \x02(\x04\x12.\n\x04type\x18\x07 \x02(\x0e\x32 .s2e_trace.PbTraceItemHeaderType\"#\n\x0fPbTraceItemFork\x12\x10\n\x08\x63hildren\x18\x01 \x03(\r\"\xac\x02\n\x17PbTraceModuleLoadUnload\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x0c\n\x04path\x18\x02 \x02(\t\x12\x0b\n\x03pid\x18\x03 \x02(\x04\x12\x15\n\raddress_space\x18\x04 \x02(\x04\x12<\n\x08sections\x18\x05 \x03(\x0b\x32*.s2e_trace.PbTraceModuleLoadUnload.Section\x1a\x92\x01\n\x07Section\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x19\n\x11runtime_load_base\x18\x02 \x02(\x04\x12\x18\n\x10native_load_base\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\x12\x10\n\x08readable\x18\x05 \x02(\x08\x12\x10\n\x08writable\x18\x06 \x02(\x08\x12\x12\n\nexecutable\x18\x07 \x02(\x08\"+\n\x14PbTraceProcessUnload\x12\x13\n\x0breturn_code\x18\x01 \x02(\x04\"8\n\x13PbTraceRegisterData\x12\x11\n\tsymb_mask\x18\x01 \x02(\r\x12\x0e\n\x06values\x18\x02 \x03(\x04\"k\n\rPbTraceTbData\x12)\n\x07tb_type\x18\x01 \x02(\x0e\x32\x18.s2e_trace.PbTraceTbType\x12\x10\n\x08\x66irst_pc\x18\x02 \x02(\x04\x12\x0f\n\x07last_pc\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\"t\n\x1cPbTraceTranslationBlockStart\x12&\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x18.s2e_trace.PbTraceTbData\x12,\n\x04regs\x18\x02 \x02(\x0b\x32\x1e.s2e_trace.PbTraceRegisterData\"r\n\x1aPbTraceTranslationBlockEnd\x12&\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x18.s2e_trace.PbTraceTbData\x12,\n\x04regs\x18\x02 \x02(\x0b\x32\x1e.s2e_trace.PbTraceRegisterData\"o\n\x17PbTraceTranslationBlock\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0f\n\x07last_pc\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\x12)\n\x07tb_type\x18\x04 \x02(\x0e\x32\x18.s2e_trace.PbTraceTbType\"%\n\rPbTraceOsInfo\x12\x14\n\x0ckernel_start\x18\x01 \x02(\x04\".\n\x10PbTraceException\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0e\n\x06vector\x18\x02 \x02(\r\"m\n\x0fPbTraceTestCase\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.s2e_trace.PbTraceTestCase.KeyValue\x1a&\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\x0c\"\xf6\x02\n\x13PbTraceMemoryAccess\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x02(\x04\x12\r\n\x05value\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\x12\r\n\x05\x66lags\x18\x05 \x02(\r\x12\x14\n\x0chost_address\x18\x06 \x02(\x04\x12\x17\n\x0f\x63oncrete_buffer\x18\x07 \x02(\x04\"\xe6\x01\n\x05\x46lags\x12\x19\n\x15\x45XECTRACE_MEM_INVALID\x10\x00\x12\x17\n\x13\x45XECTRACE_MEM_WRITE\x10\x01\x12\x14\n\x10\x45XECTRACE_MEM_IO\x10\x02\x12\x19\n\x15\x45XECTRACE_MEM_SYMBVAL\x10\x04\x12\x1a\n\x16\x45XECTRACE_MEM_SYMBADDR\x10\x08\x12\x1d\n\x19\x45XECTRACE_MEM_HASHOSTADDR\x10\x10\x12\x1e\n\x1a\x45XECTRACE_MEM_SYMBHOSTADDR\x10 \x12\x1d\n\x19\x45XECTRACE_MEM_OBJECTSTATE\x10@\"J\n\x19PbTraceSimpleMemoryAccess\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x02(\x04\x12\x10\n\x08is_write\x18\x03 \x02(\x08\"(\n\x17PbTraceInstructionCount\x12\r\n\x05\x63ount\x18\x01 \x02(\x04\"\'\n\x12PbTraceStateSwitch\x12\x11\n\tnew_state\x18\x01 \x02(\r\"\x87\x01\n\x15PbTraceCacheSimParams\x12\x10\n\x08\x63\x61\x63he_id\x18\x01 \x02(\r\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\x11\n\tline_size\x18\x03 \x02(\r\x12\x15\n\rassociativity\x18\x04 \x02(\r\x12\x16\n\x0eupper_cache_id\x18\x05 \x02(\r\x12\x0c\n\x04name\x18\x06 \x02(\t\"\x8a\x01\n\x14PbTraceCacheSimEntry\x12\x10\n\x08\x63\x61\x63he_id\x18\x01 \x02(\r\x12\n\n\x02pc\x18\x02 \x02(\x04\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x02(\x04\x12\x0c\n\x04size\x18\x04 \x02(\r\x12\x12\n\nmiss_count\x18\x05 \x02(\r\x12\x10\n\x08is_write\x18\x06 \x02(\x08\x12\x0f\n\x07is_code\x18\x07 \x02(\x08\"\x98\x04\n\x0fPbTraceCfiStats\x12\x19\n\x11\x64irect_call_count\x18\x01 \x02(\x04\x12\x1b\n\x13indirect_call_count\x18\x02 \x02(\x04\x12\x11\n\tret_count\x18\x03 \x02(\x04\x12\x1c\n\x14\x63\x61ll_violation_count\x18\x04 \x02(\x04\x12\x1b\n\x13ret_violation_count\x18\x06 \x02(\x04\x12*\n\"ret_from_unknown_exec_region_count\x18\t \x02(\x04\x12(\n ret_to_unknown_exec_region_count\x18\n \x02(\x04\x12$\n\x1cmissing_return_address_count\x18\x0b \x02(\x04\x12#\n\x1b\x63\x61ll_and_return_match_count\x18\x0c \x02(\x04\x12 \n\x18whitelisted_return_count\x18\r \x02(\x04\x12 \n\x18pending_violations_count\x18\x0e \x02(\x04\x12&\n\x1ewhitelisted_call_pattern_count\x18\x0f \x02(\x04\x12-\n%ret_to_parent_with_displacement_count\x18\x10 \x02(\x04\x12)\n!call_to_unknown_exec_region_count\x18\x11 \x02(\x04\x12\x18\n\x10ret_to_call_site\x18\x12 \x02(\x04\"a\n\x16PbTraceViolationPcInfo\x12\n\n\x02pc\x18\x01 \x02(\x04\x12\x13\n\x0bmodule_path\x18\x02 \x01(\t\x12\x11\n\tmodule_pc\x18\x03 \x01(\x04\x12\x13\n\x0b\x64isassembly\x18\x04 \x01(\t\"\xf3\x01\n\x13PbTraceCfiViolation\x12\x30\n\x04type\x18\x01 \x02(\x0e\x32\".s2e_trace.PbTraceCfiViolationType\x12\x31\n\x06source\x18\x02 \x02(\x0b\x32!.s2e_trace.PbTraceViolationPcInfo\x12\x36\n\x0b\x64\x65stination\x18\x03 \x02(\x0b\x32!.s2e_trace.PbTraceViolationPcInfo\x12?\n\x14\x65xpected_destination\x18\x04 \x01(\x0b\x32!.s2e_trace.PbTraceViolationPcInfo*\xa3\x03\n\x15PbTraceItemHeaderType\x12\x0e\n\nTRACE_FORK\x10\x00\x12\x12\n\x0eTRACE_MOD_LOAD\x10\x01\x12\x14\n\x10TRACE_MOD_UNLOAD\x10\x02\x12\x15\n\x11TRACE_PROC_UNLOAD\x10\x03\x12\x12\n\x0eTRACE_TB_START\x10\x04\x12\x10\n\x0cTRACE_TB_END\x10\x05\x12\x10\n\x0cTRACE_OSINFO\x10\x08\x12\x13\n\x0fTRACE_EXCEPTION\x10\t\x12\x12\n\x0eTRACE_TESTCASE\x10\n\x12\x10\n\x0cTRACE_MEMORY\x10\x0b\x12\x13\n\x0fTRACE_PAGEFAULT\x10\x0c\x12\x11\n\rTRACE_TLBMISS\x10\r\x12\x10\n\x0cTRACE_ICOUNT\x10\x0e\x12\x16\n\x12TRACE_STATE_SWITCH\x10\x0f\x12\x0f\n\x0bTRACE_BLOCK\x10\x10\x12\x1a\n\x16TRACE_CACHE_SIM_PARAMS\x10\x11\x12\x19\n\x15TRACE_CACHE_SIM_ENTRY\x10\x12\x12\x13\n\x0fTRACE_CFI_STATS\x10\x13\x12\x17\n\x13TRACE_CFI_VIOLATION\x10\x14*\xc2\x01\n\rPbTraceTbType\x12\x0e\n\nTB_DEFAULT\x10\x00\x12\n\n\x06TB_JMP\x10\x01\x12\x0e\n\nTB_JMP_IND\x10\x02\x12\x0f\n\x0bTB_COND_JMP\x10\x03\x12\x13\n\x0fTB_COND_JMP_IND\x10\x04\x12\x0b\n\x07TB_CALL\x10\x05\x12\x0f\n\x0bTB_CALL_IND\x10\x06\x12\n\n\x06TB_REP\x10\x07\x12\n\n\x06TB_RET\x10\x08\x12\x0b\n\x07TB_IRET\x10\t\x12\x0b\n\x07TB_EXCP\x10\n\x12\x0f\n\x0bTB_SYSENTER\x10\x0b*C\n\x17PbTraceCfiViolationType\x12\x12\n\x0e\x43\x41LL_VIOLATION\x10\x00\x12\x14\n\x10RETURN_VIOLATION\x10\x01') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'TraceEntries_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _PBTRACEITEMHEADERTYPE._serialized_start=2998 + _PBTRACEITEMHEADERTYPE._serialized_end=3417 + _PBTRACETBTYPE._serialized_start=3420 + _PBTRACETBTYPE._serialized_end=3614 + _PBTRACECFIVIOLATIONTYPE._serialized_start=3616 + _PBTRACECFIVIOLATIONTYPE._serialized_end=3683 + _PBTRACEITEMHEADER._serialized_start=34 + _PBTRACEITEMHEADER._serialized_end=199 + _PBTRACEITEMFORK._serialized_start=201 + _PBTRACEITEMFORK._serialized_end=236 + _PBTRACEMODULELOADUNLOAD._serialized_start=239 + _PBTRACEMODULELOADUNLOAD._serialized_end=539 + _PBTRACEMODULELOADUNLOAD_SECTION._serialized_start=393 + _PBTRACEMODULELOADUNLOAD_SECTION._serialized_end=539 + _PBTRACEPROCESSUNLOAD._serialized_start=541 + _PBTRACEPROCESSUNLOAD._serialized_end=584 + _PBTRACEREGISTERDATA._serialized_start=586 + _PBTRACEREGISTERDATA._serialized_end=642 + _PBTRACETBDATA._serialized_start=644 + _PBTRACETBDATA._serialized_end=751 + _PBTRACETRANSLATIONBLOCKSTART._serialized_start=753 + _PBTRACETRANSLATIONBLOCKSTART._serialized_end=869 + _PBTRACETRANSLATIONBLOCKEND._serialized_start=871 + _PBTRACETRANSLATIONBLOCKEND._serialized_end=985 + _PBTRACETRANSLATIONBLOCK._serialized_start=987 + _PBTRACETRANSLATIONBLOCK._serialized_end=1098 + _PBTRACEOSINFO._serialized_start=1100 + _PBTRACEOSINFO._serialized_end=1137 + _PBTRACEEXCEPTION._serialized_start=1139 + _PBTRACEEXCEPTION._serialized_end=1185 + _PBTRACETESTCASE._serialized_start=1187 + _PBTRACETESTCASE._serialized_end=1296 + _PBTRACETESTCASE_KEYVALUE._serialized_start=1258 + _PBTRACETESTCASE_KEYVALUE._serialized_end=1296 + _PBTRACEMEMORYACCESS._serialized_start=1299 + _PBTRACEMEMORYACCESS._serialized_end=1673 + _PBTRACEMEMORYACCESS_FLAGS._serialized_start=1443 + _PBTRACEMEMORYACCESS_FLAGS._serialized_end=1673 + _PBTRACESIMPLEMEMORYACCESS._serialized_start=1675 + _PBTRACESIMPLEMEMORYACCESS._serialized_end=1749 + _PBTRACEINSTRUCTIONCOUNT._serialized_start=1751 + _PBTRACEINSTRUCTIONCOUNT._serialized_end=1791 + _PBTRACESTATESWITCH._serialized_start=1793 + _PBTRACESTATESWITCH._serialized_end=1832 + _PBTRACECACHESIMPARAMS._serialized_start=1835 + _PBTRACECACHESIMPARAMS._serialized_end=1970 + _PBTRACECACHESIMENTRY._serialized_start=1973 + _PBTRACECACHESIMENTRY._serialized_end=2111 + _PBTRACECFISTATS._serialized_start=2114 + _PBTRACECFISTATS._serialized_end=2650 + _PBTRACEVIOLATIONPCINFO._serialized_start=2652 + _PBTRACEVIOLATIONPCINFO._serialized_end=2749 + _PBTRACECFIVIOLATION._serialized_start=2752 + _PBTRACECFIVIOLATION._serialized_end=2995 # @@protoc_insertion_point(module_scope) diff --git a/s2e_env/execution_trace/TraceEntries_pb2.pyi b/s2e_env/execution_trace/TraceEntries_pb2.pyi new file mode 100644 index 0000000..e4ad203 --- /dev/null +++ b/s2e_env/execution_trace/TraceEntries_pb2.pyi @@ -0,0 +1,327 @@ +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +CALL_VIOLATION: PbTraceCfiViolationType +DESCRIPTOR: _descriptor.FileDescriptor +RETURN_VIOLATION: PbTraceCfiViolationType +TB_CALL: PbTraceTbType +TB_CALL_IND: PbTraceTbType +TB_COND_JMP: PbTraceTbType +TB_COND_JMP_IND: PbTraceTbType +TB_DEFAULT: PbTraceTbType +TB_EXCP: PbTraceTbType +TB_IRET: PbTraceTbType +TB_JMP: PbTraceTbType +TB_JMP_IND: PbTraceTbType +TB_REP: PbTraceTbType +TB_RET: PbTraceTbType +TB_SYSENTER: PbTraceTbType +TRACE_BLOCK: PbTraceItemHeaderType +TRACE_CACHE_SIM_ENTRY: PbTraceItemHeaderType +TRACE_CACHE_SIM_PARAMS: PbTraceItemHeaderType +TRACE_CFI_STATS: PbTraceItemHeaderType +TRACE_CFI_VIOLATION: PbTraceItemHeaderType +TRACE_EXCEPTION: PbTraceItemHeaderType +TRACE_FORK: PbTraceItemHeaderType +TRACE_ICOUNT: PbTraceItemHeaderType +TRACE_MEMORY: PbTraceItemHeaderType +TRACE_MOD_LOAD: PbTraceItemHeaderType +TRACE_MOD_UNLOAD: PbTraceItemHeaderType +TRACE_OSINFO: PbTraceItemHeaderType +TRACE_PAGEFAULT: PbTraceItemHeaderType +TRACE_PROC_UNLOAD: PbTraceItemHeaderType +TRACE_STATE_SWITCH: PbTraceItemHeaderType +TRACE_TB_END: PbTraceItemHeaderType +TRACE_TB_START: PbTraceItemHeaderType +TRACE_TESTCASE: PbTraceItemHeaderType +TRACE_TLBMISS: PbTraceItemHeaderType + +class PbTraceCacheSimEntry(_message.Message): + __slots__ = ["address", "cache_id", "is_code", "is_write", "miss_count", "pc", "size"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + CACHE_ID_FIELD_NUMBER: _ClassVar[int] + IS_CODE_FIELD_NUMBER: _ClassVar[int] + IS_WRITE_FIELD_NUMBER: _ClassVar[int] + MISS_COUNT_FIELD_NUMBER: _ClassVar[int] + PC_FIELD_NUMBER: _ClassVar[int] + SIZE_FIELD_NUMBER: _ClassVar[int] + address: int + cache_id: int + is_code: bool + is_write: bool + miss_count: int + pc: int + size: int + def __init__(self, cache_id: _Optional[int] = ..., pc: _Optional[int] = ..., address: _Optional[int] = ..., size: _Optional[int] = ..., miss_count: _Optional[int] = ..., is_write: bool = ..., is_code: bool = ...) -> None: ... + +class PbTraceCacheSimParams(_message.Message): + __slots__ = ["associativity", "cache_id", "line_size", "name", "size", "upper_cache_id"] + ASSOCIATIVITY_FIELD_NUMBER: _ClassVar[int] + CACHE_ID_FIELD_NUMBER: _ClassVar[int] + LINE_SIZE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + SIZE_FIELD_NUMBER: _ClassVar[int] + UPPER_CACHE_ID_FIELD_NUMBER: _ClassVar[int] + associativity: int + cache_id: int + line_size: int + name: str + size: int + upper_cache_id: int + def __init__(self, cache_id: _Optional[int] = ..., size: _Optional[int] = ..., line_size: _Optional[int] = ..., associativity: _Optional[int] = ..., upper_cache_id: _Optional[int] = ..., name: _Optional[str] = ...) -> None: ... + +class PbTraceCfiStats(_message.Message): + __slots__ = ["call_and_return_match_count", "call_to_unknown_exec_region_count", "call_violation_count", "direct_call_count", "indirect_call_count", "missing_return_address_count", "pending_violations_count", "ret_count", "ret_from_unknown_exec_region_count", "ret_to_call_site", "ret_to_parent_with_displacement_count", "ret_to_unknown_exec_region_count", "ret_violation_count", "whitelisted_call_pattern_count", "whitelisted_return_count"] + CALL_AND_RETURN_MATCH_COUNT_FIELD_NUMBER: _ClassVar[int] + CALL_TO_UNKNOWN_EXEC_REGION_COUNT_FIELD_NUMBER: _ClassVar[int] + CALL_VIOLATION_COUNT_FIELD_NUMBER: _ClassVar[int] + DIRECT_CALL_COUNT_FIELD_NUMBER: _ClassVar[int] + INDIRECT_CALL_COUNT_FIELD_NUMBER: _ClassVar[int] + MISSING_RETURN_ADDRESS_COUNT_FIELD_NUMBER: _ClassVar[int] + PENDING_VIOLATIONS_COUNT_FIELD_NUMBER: _ClassVar[int] + RET_COUNT_FIELD_NUMBER: _ClassVar[int] + RET_FROM_UNKNOWN_EXEC_REGION_COUNT_FIELD_NUMBER: _ClassVar[int] + RET_TO_CALL_SITE_FIELD_NUMBER: _ClassVar[int] + RET_TO_PARENT_WITH_DISPLACEMENT_COUNT_FIELD_NUMBER: _ClassVar[int] + RET_TO_UNKNOWN_EXEC_REGION_COUNT_FIELD_NUMBER: _ClassVar[int] + RET_VIOLATION_COUNT_FIELD_NUMBER: _ClassVar[int] + WHITELISTED_CALL_PATTERN_COUNT_FIELD_NUMBER: _ClassVar[int] + WHITELISTED_RETURN_COUNT_FIELD_NUMBER: _ClassVar[int] + call_and_return_match_count: int + call_to_unknown_exec_region_count: int + call_violation_count: int + direct_call_count: int + indirect_call_count: int + missing_return_address_count: int + pending_violations_count: int + ret_count: int + ret_from_unknown_exec_region_count: int + ret_to_call_site: int + ret_to_parent_with_displacement_count: int + ret_to_unknown_exec_region_count: int + ret_violation_count: int + whitelisted_call_pattern_count: int + whitelisted_return_count: int + def __init__(self, direct_call_count: _Optional[int] = ..., indirect_call_count: _Optional[int] = ..., ret_count: _Optional[int] = ..., call_violation_count: _Optional[int] = ..., ret_violation_count: _Optional[int] = ..., ret_from_unknown_exec_region_count: _Optional[int] = ..., ret_to_unknown_exec_region_count: _Optional[int] = ..., missing_return_address_count: _Optional[int] = ..., call_and_return_match_count: _Optional[int] = ..., whitelisted_return_count: _Optional[int] = ..., pending_violations_count: _Optional[int] = ..., whitelisted_call_pattern_count: _Optional[int] = ..., ret_to_parent_with_displacement_count: _Optional[int] = ..., call_to_unknown_exec_region_count: _Optional[int] = ..., ret_to_call_site: _Optional[int] = ...) -> None: ... + +class PbTraceCfiViolation(_message.Message): + __slots__ = ["destination", "expected_destination", "source", "type"] + DESTINATION_FIELD_NUMBER: _ClassVar[int] + EXPECTED_DESTINATION_FIELD_NUMBER: _ClassVar[int] + SOURCE_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + destination: PbTraceViolationPcInfo + expected_destination: PbTraceViolationPcInfo + source: PbTraceViolationPcInfo + type: PbTraceCfiViolationType + def __init__(self, type: _Optional[_Union[PbTraceCfiViolationType, str]] = ..., source: _Optional[_Union[PbTraceViolationPcInfo, _Mapping]] = ..., destination: _Optional[_Union[PbTraceViolationPcInfo, _Mapping]] = ..., expected_destination: _Optional[_Union[PbTraceViolationPcInfo, _Mapping]] = ...) -> None: ... + +class PbTraceException(_message.Message): + __slots__ = ["pc", "vector"] + PC_FIELD_NUMBER: _ClassVar[int] + VECTOR_FIELD_NUMBER: _ClassVar[int] + pc: int + vector: int + def __init__(self, pc: _Optional[int] = ..., vector: _Optional[int] = ...) -> None: ... + +class PbTraceInstructionCount(_message.Message): + __slots__ = ["count"] + COUNT_FIELD_NUMBER: _ClassVar[int] + count: int + def __init__(self, count: _Optional[int] = ...) -> None: ... + +class PbTraceItemFork(_message.Message): + __slots__ = ["children"] + CHILDREN_FIELD_NUMBER: _ClassVar[int] + children: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, children: _Optional[_Iterable[int]] = ...) -> None: ... + +class PbTraceItemHeader(_message.Message): + __slots__ = ["address_space", "pc", "pid", "state_id", "tid", "timestamp", "type"] + ADDRESS_SPACE_FIELD_NUMBER: _ClassVar[int] + PC_FIELD_NUMBER: _ClassVar[int] + PID_FIELD_NUMBER: _ClassVar[int] + STATE_ID_FIELD_NUMBER: _ClassVar[int] + TID_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + address_space: int + pc: int + pid: int + state_id: int + tid: int + timestamp: int + type: PbTraceItemHeaderType + def __init__(self, state_id: _Optional[int] = ..., timestamp: _Optional[int] = ..., address_space: _Optional[int] = ..., pid: _Optional[int] = ..., tid: _Optional[int] = ..., pc: _Optional[int] = ..., type: _Optional[_Union[PbTraceItemHeaderType, str]] = ...) -> None: ... + +class PbTraceMemoryAccess(_message.Message): + __slots__ = ["address", "concrete_buffer", "flags", "host_address", "pc", "size", "value"] + class Flags(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + CONCRETE_BUFFER_FIELD_NUMBER: _ClassVar[int] + EXECTRACE_MEM_HASHOSTADDR: PbTraceMemoryAccess.Flags + EXECTRACE_MEM_INVALID: PbTraceMemoryAccess.Flags + EXECTRACE_MEM_IO: PbTraceMemoryAccess.Flags + EXECTRACE_MEM_OBJECTSTATE: PbTraceMemoryAccess.Flags + EXECTRACE_MEM_SYMBADDR: PbTraceMemoryAccess.Flags + EXECTRACE_MEM_SYMBHOSTADDR: PbTraceMemoryAccess.Flags + EXECTRACE_MEM_SYMBVAL: PbTraceMemoryAccess.Flags + EXECTRACE_MEM_WRITE: PbTraceMemoryAccess.Flags + FLAGS_FIELD_NUMBER: _ClassVar[int] + HOST_ADDRESS_FIELD_NUMBER: _ClassVar[int] + PC_FIELD_NUMBER: _ClassVar[int] + SIZE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + address: int + concrete_buffer: int + flags: int + host_address: int + pc: int + size: int + value: int + def __init__(self, pc: _Optional[int] = ..., address: _Optional[int] = ..., value: _Optional[int] = ..., size: _Optional[int] = ..., flags: _Optional[int] = ..., host_address: _Optional[int] = ..., concrete_buffer: _Optional[int] = ...) -> None: ... + +class PbTraceModuleLoadUnload(_message.Message): + __slots__ = ["address_space", "name", "path", "pid", "sections"] + class Section(_message.Message): + __slots__ = ["executable", "name", "native_load_base", "readable", "runtime_load_base", "size", "writable"] + EXECUTABLE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + NATIVE_LOAD_BASE_FIELD_NUMBER: _ClassVar[int] + READABLE_FIELD_NUMBER: _ClassVar[int] + RUNTIME_LOAD_BASE_FIELD_NUMBER: _ClassVar[int] + SIZE_FIELD_NUMBER: _ClassVar[int] + WRITABLE_FIELD_NUMBER: _ClassVar[int] + executable: bool + name: str + native_load_base: int + readable: bool + runtime_load_base: int + size: int + writable: bool + def __init__(self, name: _Optional[str] = ..., runtime_load_base: _Optional[int] = ..., native_load_base: _Optional[int] = ..., size: _Optional[int] = ..., readable: bool = ..., writable: bool = ..., executable: bool = ...) -> None: ... + ADDRESS_SPACE_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + PATH_FIELD_NUMBER: _ClassVar[int] + PID_FIELD_NUMBER: _ClassVar[int] + SECTIONS_FIELD_NUMBER: _ClassVar[int] + address_space: int + name: str + path: str + pid: int + sections: _containers.RepeatedCompositeFieldContainer[PbTraceModuleLoadUnload.Section] + def __init__(self, name: _Optional[str] = ..., path: _Optional[str] = ..., pid: _Optional[int] = ..., address_space: _Optional[int] = ..., sections: _Optional[_Iterable[_Union[PbTraceModuleLoadUnload.Section, _Mapping]]] = ...) -> None: ... + +class PbTraceOsInfo(_message.Message): + __slots__ = ["kernel_start"] + KERNEL_START_FIELD_NUMBER: _ClassVar[int] + kernel_start: int + def __init__(self, kernel_start: _Optional[int] = ...) -> None: ... + +class PbTraceProcessUnload(_message.Message): + __slots__ = ["return_code"] + RETURN_CODE_FIELD_NUMBER: _ClassVar[int] + return_code: int + def __init__(self, return_code: _Optional[int] = ...) -> None: ... + +class PbTraceRegisterData(_message.Message): + __slots__ = ["symb_mask", "values"] + SYMB_MASK_FIELD_NUMBER: _ClassVar[int] + VALUES_FIELD_NUMBER: _ClassVar[int] + symb_mask: int + values: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, symb_mask: _Optional[int] = ..., values: _Optional[_Iterable[int]] = ...) -> None: ... + +class PbTraceSimpleMemoryAccess(_message.Message): + __slots__ = ["address", "is_write", "pc"] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + IS_WRITE_FIELD_NUMBER: _ClassVar[int] + PC_FIELD_NUMBER: _ClassVar[int] + address: int + is_write: bool + pc: int + def __init__(self, pc: _Optional[int] = ..., address: _Optional[int] = ..., is_write: bool = ...) -> None: ... + +class PbTraceStateSwitch(_message.Message): + __slots__ = ["new_state"] + NEW_STATE_FIELD_NUMBER: _ClassVar[int] + new_state: int + def __init__(self, new_state: _Optional[int] = ...) -> None: ... + +class PbTraceTbData(_message.Message): + __slots__ = ["first_pc", "last_pc", "size", "tb_type"] + FIRST_PC_FIELD_NUMBER: _ClassVar[int] + LAST_PC_FIELD_NUMBER: _ClassVar[int] + SIZE_FIELD_NUMBER: _ClassVar[int] + TB_TYPE_FIELD_NUMBER: _ClassVar[int] + first_pc: int + last_pc: int + size: int + tb_type: PbTraceTbType + def __init__(self, tb_type: _Optional[_Union[PbTraceTbType, str]] = ..., first_pc: _Optional[int] = ..., last_pc: _Optional[int] = ..., size: _Optional[int] = ...) -> None: ... + +class PbTraceTestCase(_message.Message): + __slots__ = ["items"] + class KeyValue(_message.Message): + __slots__ = ["key", "value"] + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: bytes + def __init__(self, key: _Optional[str] = ..., value: _Optional[bytes] = ...) -> None: ... + ITEMS_FIELD_NUMBER: _ClassVar[int] + items: _containers.RepeatedCompositeFieldContainer[PbTraceTestCase.KeyValue] + def __init__(self, items: _Optional[_Iterable[_Union[PbTraceTestCase.KeyValue, _Mapping]]] = ...) -> None: ... + +class PbTraceTranslationBlock(_message.Message): + __slots__ = ["last_pc", "pc", "size", "tb_type"] + LAST_PC_FIELD_NUMBER: _ClassVar[int] + PC_FIELD_NUMBER: _ClassVar[int] + SIZE_FIELD_NUMBER: _ClassVar[int] + TB_TYPE_FIELD_NUMBER: _ClassVar[int] + last_pc: int + pc: int + size: int + tb_type: PbTraceTbType + def __init__(self, pc: _Optional[int] = ..., last_pc: _Optional[int] = ..., size: _Optional[int] = ..., tb_type: _Optional[_Union[PbTraceTbType, str]] = ...) -> None: ... + +class PbTraceTranslationBlockEnd(_message.Message): + __slots__ = ["data", "regs"] + DATA_FIELD_NUMBER: _ClassVar[int] + REGS_FIELD_NUMBER: _ClassVar[int] + data: PbTraceTbData + regs: PbTraceRegisterData + def __init__(self, data: _Optional[_Union[PbTraceTbData, _Mapping]] = ..., regs: _Optional[_Union[PbTraceRegisterData, _Mapping]] = ...) -> None: ... + +class PbTraceTranslationBlockStart(_message.Message): + __slots__ = ["data", "regs"] + DATA_FIELD_NUMBER: _ClassVar[int] + REGS_FIELD_NUMBER: _ClassVar[int] + data: PbTraceTbData + regs: PbTraceRegisterData + def __init__(self, data: _Optional[_Union[PbTraceTbData, _Mapping]] = ..., regs: _Optional[_Union[PbTraceRegisterData, _Mapping]] = ...) -> None: ... + +class PbTraceViolationPcInfo(_message.Message): + __slots__ = ["disassembly", "module_path", "module_pc", "pc"] + DISASSEMBLY_FIELD_NUMBER: _ClassVar[int] + MODULE_PATH_FIELD_NUMBER: _ClassVar[int] + MODULE_PC_FIELD_NUMBER: _ClassVar[int] + PC_FIELD_NUMBER: _ClassVar[int] + disassembly: str + module_path: str + module_pc: int + pc: int + def __init__(self, pc: _Optional[int] = ..., module_path: _Optional[str] = ..., module_pc: _Optional[int] = ..., disassembly: _Optional[str] = ...) -> None: ... + +class PbTraceItemHeaderType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + +class PbTraceTbType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] + +class PbTraceCfiViolationType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = [] diff --git a/s2e_env/utils/host.py b/s2e_env/utils/host.py new file mode 100644 index 0000000..7dc75b1 --- /dev/null +++ b/s2e_env/utils/host.py @@ -0,0 +1,31 @@ +""" +Copyright (c) 2017 Dependable Systems Laboratory, EPFL + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +""" + +import distro + +def get_os_version(): + id_name, version, _ = distro.linux_distribution(full_distribution_name=False) + id_name = id_name.lower() + + major_version = int(version.split('.')[0]) + + return id_name, major_version diff --git a/setup.py b/setup.py deleted file mode 100644 index fbc633e..0000000 --- a/setup.py +++ /dev/null @@ -1,112 +0,0 @@ -""" -Copyright (c) 2017 Dependable Systems Laboratory, EPFL - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -""" - - -import os - -import pip -from setuptools import setup, find_packages - -pyelftools_version = '0.24+s2e' -pyelftools_url = f'git+https://github.com/S2E/pyelftools.git#egg=pyelftools-{pyelftools_version}' - -version = pip.__version__.split('.') -if int(version[0]) < 19: - # For use together with --process-dependency-links - pyelftools = f'pyelftools=={pyelftools_version}' -else: - pyelftools = 'pyelftools@%s' % pyelftools_url - - -setup( - name='s2e-env', - description='A command-line tool for administering S2E environments', - long_description=open('README.md', 'r', encoding='utf8').read(), - author='Adrian Herrera', - author_email='adrian.herrera@epfl.ch', - version=open(os.path.join('s2e_env', 'dat', 'VERSION'), 'r').read().strip(), - url='http://s2e.systems', - download_url='https://github.com/S2E/s2e-env.git', - install_requires=[ - # S2E engine requirements - 'docutils', - 'pygments', - - # s2e-env requirements - 'distro', - 'enum34', - 'jinja2', - 'pefile', - 'psutil', - pyelftools, - 'python-magic', - 'pyyaml', - 'requests', - 'sh', - 'termcolor', - 'pytrie', - 'pwntools==4.3.1', - 'psutil', - 'protobuf3-to-dict', - 'immutables', - 'alive_progress', - 'protobuf==3.20.2', - - # Dependencies for symchk - 'pdbparse==1.5', - 'pefile==2019.4.18', - 'construct==2.9.52', - 'patool==1.12', - 'pyunpack==0.2.2', - - # FTP server used by image creation - 'pyftpdlib' - ], - tests_require=[ - 'mock', - ], - packages=find_packages(), - dependency_links=[ - pyelftools_url, - ], - include_package_data=True, - package_data={ - 's2e_env': [ - 'templates/*', - 'templates/plugin_creation/*', - 'dat/*', - ], - }, - entry_points={ - 'console_scripts': [ - 's2e = s2e_env.manage:main', - ] - }, - classifiers=[ - 'Intended Audience :: Developers', - 'Environment :: Console', - 'Programming Language :: Python', - 'Topic :: Security', - 'Topic :: Software Development', - 'Topic :: System', - ], -) diff --git a/test.sh b/test.sh index 6755176..9df9a95 100755 --- a/test.sh +++ b/test.sh @@ -36,7 +36,7 @@ pip install "$SRC_DIR" pip install pylint pytest-cov mock echo Running pylint... -pylint -rn --rcfile=${SRC_DIR}/pylint_rc ${SRC_DIR}/s2e_env +pylint --prefer-stubs=yes -rn --rcfile=${SRC_DIR}/pylint_rc ${SRC_DIR}/s2e_env echo Running tests... export TERM=linux