trailofbits / deepstate

A unit test-like interface for fuzzing and symbolic execution
Apache License 2.0
814 stars 99 forks source link

Fails run with using docker. #390

Closed bkotlowski closed 2 years ago

bkotlowski commented 3 years ago

I was following the instructions in the README. Unfortunately the attempt failed.

➜  ~ docker run -it deepstate bash
user@fa1bcef49a8a:~/deepstate$ cd build/examples
user@fa1bcef49a8a:~/deepstate/build/examples$ deepstate-angr ./Runlen
INFO:deepstate:Setting log level from DEEPSTATE_LOG: 2
INFO:deepstate.core.base:Setting log level from --min_log_level: 2
Traceback (most recent call last):
  File "/usr/local/bin/deepstate-angr", line 33, in <module>
    sys.exit(load_entry_point('deepstate==0.1', 'console_scripts', 'deepstate-angr')())
  File "/usr/local/lib/python3.6/dist-packages/deepstate-0.1-py3.6.egg/deepstate/executors/symex/angr.py", line 514, in main
    return main_unit_test(args, project)
  File "/usr/local/lib/python3.6/dist-packages/deepstate-0.1-py3.6.egg/deepstate/executors/symex/angr.py", line 434, in main_unit_test
    angr.options.STRICT_PAGE_ACCESS})
  File "/home/user/.local/lib/python3.6/site-packages/angr/factory.py", line 99, in entry_state
    return self.project.simos.state_entry(**kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/simos/linux.py", line 344, in state_entry
    state.mem[sym.rebased_addr].long = val
  File "/home/user/.local/lib/python3.6/site-packages/angr/state_plugins/view.py", line 215, in __setattr__
    return self.__getattr__(k).store(v)
  File "/home/user/.local/lib/python3.6/site-packages/angr/state_plugins/view.py", line 271, in store
    return self._type.store(self.state, self._addr, value)
  File "/home/user/.local/lib/python3.6/site-packages/angr/sim_type.py", line 282, in store
    state.memory.store(addr, value, endness=store_endness)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/unwrapper_mixin.py", line 11, in store
    **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/name_resolution_mixin.py", line 50, in store
    return super().store(addr, data, size=size, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/bvv_conversion_mixin.py", line 25, in store
    super().store(addr, data_bv, size=size, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/simplification_mixin.py", line 11, in store
    super().store(addr, real_data, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/clouseau_mixin.py", line 11, in store
    **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/actions_mixin.py", line 34, in store
    super().store(addr, data, size=size, action=action, condition=condition, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/underconstrained_mixin.py", line 27, in store
    super().store(addr, data, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/size_resolution_mixin.py", line 88, in store
    super().store(addr, data, size=size, condition=condition, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/size_resolution_mixin.py", line 47, in store
    super().store(addr, data, size=out_size, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/address_concretization_mixin.py", line 327, in store
    self._store_one_addr(self.state.solver.eval(addr), data, True, addr, condition, size, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/address_concretization_mixin.py", line 318, in _store_one_addr
    super().store(concrete_addr, data, size=size, condition=sub_condition, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/actions_mixin.py", line 74, in store
    return super().store(addr, data, action=action, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/conditional_store_mixin.py", line 17, in store
    super().store(addr, data, size=size, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/convenient_mappings_mixin.py", line 55, in store
    return super().store(addr, data, size=size, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/dirty_addrs_mixin.py", line 8, in store
    super().store(addr, data, size=size, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/paged_memory/paged_memory_mixin.py", line 169, in store
    page = self._get_page(pageno, True, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/angr/storage/memory_mixins/paged_memory/privileged_mixin.py", line 20, in _get_page
    raise SimSegfaultException(pageno * self.page_size, 'non-writable')
angr.errors.SimSegfaultException: 0x703000 (non-writable)
user@fa1bcef49a8a:~/deepstate/build/examples$

I downloaded the latest repo before and did this:

$ docker build -t deepstate-base -f docker/base/Dockerfile docker/base
$ docker build -t deepstate --build-arg make_j=6 -f ./docker/Dockerfile .
agroce commented 3 years ago

angr is probably no longer working due to angr API changes. try manticore, AFL, or something else?

agroce commented 3 years ago

Sorry for slow response; beginning of school year