angr / angr/angr

Networkx exception: Node is not in the digraph

Offen
#667 6 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @ltfish Auf GitHub ansehen
bug
Vorherrschende Sprache
Python
Sterne
9.1k
Forks
1.2k
Ø Merge
16 Std. 20 Min.
Gemergte PRs (30 T.)
169

Beschreibung

Hi guys,

I am having a problem with one binary, while trying to generate its Control Flow Graph with CFGFast. Below you can find the trace:

First I get this error:
```
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/engine.py", line 223, in _handle_irsb
self._handle_statement(state, successors, stmt)
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/engine.py", line 330, in _handle_statement
s_stmt = translate_stmt(stmt, state)
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/statements/__init__.py", line 29, in translate_stmt
s.process()
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/statements/base.py", line 20, in process
self._execute()
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/statements/wrtmp.py", line 6, in _execute
data = self._translate_expr(self.stmt.data)
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/statements/base.py", line 27, in _translate_expr
e = translate_expr(expr, self.state)
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/expressions/__init__.py", line 14, in translate_expr
e.process()
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/expressions/base.py", line 36, in process
self._execute()
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/expressions/op.py", line 12, in _execute
exprs = self._translate_exprs(self._expr.args)
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/expressions/base.py", line 80, in _translate_exprs
return [ self._translate_expr(e) for e in exprs ]
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/expressions/base.py", line 73, in _translate_expr
e = translate_expr(expr, self.state)
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/expressions/__init__.py", line 14, in translate_expr
e.process()
File "/usr/local/lib/python2.7/site-packages/angr/engines/vex/expressions/base.py", line 36, in process
self._execute()
File "/usr/local/lib/python2.7/site-packages/angr/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/site-packages/angr/state_plugins/scratch.py", line 95, in tmp_expr
'slicing.' % tmp
SimValueError: VEX temp variable 5 does not exist. This is usually the result of an incorrect slicing.
```

Than a bunch of Warnings of this type:
WARNING | 2017-09-22 11:47:20,758 | angr.state_plugins.abstract_memory | map_region() is not yet supported by SimAbstractMmeory.
WARNING | 2017-09-22 11:47:23,234 | angr.engines.successors | Exit state has over 257 possible solutions. Likely unconstrained; skipping.

And in the end this error from Networkx:
```
Traceback (most recent call last):
File "test.py", line 5, in
a = convertbinary.generateCFG(b, 900)
File "/service/convertbinary.py", line 23, in generateCFG
cfg = project.analyses.CFG()
File "/usr/local/lib/python2.7/site-packages/angr/analyses/analysis.py", line 96, in make_analysis
oself.__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/angr/analyses/cfg/cfg.py", line 58, in __init__
CFGFast.__init__(self, **kwargs)
File "/usr/local/lib/python2.7/site-packages/angr/analyses/cfg/cfg_fast.py", line 810, in __init__
self._analyze()
File "/usr/local/lib/python2.7/site-packages/angr/analyses/forward_analysis.py", line 507, in _analyze
self._post_analysis()
File "/usr/local/lib/python2.7/site-packages/angr/analyses/cfg/cfg_fast.py", line 1360, in _post_analysis
self._remove_redundant_overlapping_blocks()
File "/usr/local/lib/python2.7/site-packages/angr/analyses/cfg/cfg_fast.py", line 2637, in _remove_redundant_overlapping_blocks
self.graph.remove_node(b)
File "/usr/local/lib/python2.7/site-packages/networkx/classes/digraph.py", line 461, in remove_node
raise NetworkXError("The node %s is not in the digraph."%(n,))
networkx.exception.NetworkXError: The node is not in the digraph.
```

I am using latest version of angr with networkx version 1.11. Any idea on what is causing this error?

Thanks,
Gani

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.