Skip to content
This repository was archived by the owner on May 18, 2022. It is now read-only.
This repository was archived by the owner on May 18, 2022. It is now read-only.

SimValueError while constructing CFG #139

@dorottyapapp

Description

@dorottyapapp

Hi!

I'm trying to analyze a MIPS R3000 binary with angr. I load the binary with

b = angr.Project(
        filename,
        load_options={
                 'auto_load_libs': True,
                 'except_missing_libs': True
         },
        use_sim_procedures=False
)

And tried to construct the CFG of the binary with cfg = b.analyses.CFG(). While the analysis is running, I received a large number of warnings from simuvex.engines.vex.engine in the following form:
<address> hit an error while analyzing statement <number> e.g. 0x200c4c0 hit an error while analyzing statement 10. For each such warning, I also see a traceback:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/engine.py", line 203, in _handle_irsb
    self._handle_statement(state, successors, stmt)
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/engine.py", line 309, in _handle_statement
    s_stmt = translate_stmt(stmt, state)
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/statements/__init__.py", line 29, in translate_stmt
    s.process()
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/statements/base.py", line 20, in process
    self._execute()
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/statements/put.py", line 9, in _execute
    data = self._translate_expr(self.stmt.data)
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/statements/base.py", line 27, in _translate_expr
    e = translate_expr(expr, self.state)
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/expressions/__init__.py", line 14, in translate_expr
    e.process()
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/expressions/base.py", line 36, in process
    self._execute()
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/engines/vex/expressions/rdtmp.py", line 11, in _execute
    self.expr = self.state.scratch.tmp_expr(self._expr.tmp)
  File "/usr/local/lib/python2.7/dist-packages/simuvex-6.7.4.12-py2.7.egg/simuvex/plugins/scratch.py", line 93, in tmp_expr
    'slicing.' % tmp
SimValueError: VEX temp variable <number> does not exist. This is usually the result of an incorrect slicing.

The sample triggering this issue: https://www.dropbox.com/s/l4wgbd1evsuln5b/1dc7177fc3dc27cbb555a87412599a59744425b53fbcb4b8dfb61596a183d37d.zip?dl=0

Could You look into this issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions