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

SimValueError while constructing CFG #139

Open
dorottyapapp opened this issue Jun 9, 2017 · 0 comments
Open

SimValueError while constructing CFG #139

dorottyapapp opened this issue Jun 9, 2017 · 0 comments

Comments

@dorottyapapp
Copy link

dorottyapapp commented Jun 9, 2017

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?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant