axt / bingraphvis Goto Github PK
View Code? Open in Web Editor NEWLicense: BSD 2-Clause "Simplified" License
License: BSD 2-Clause "Simplified" License
hi, axt,
I just setup your great work, but in the installation path: /usr/.../python2.7/dist-packages/bingraphvis not found arm, and when I ran your sample, it gave me belows, and I hope your answer :) :
Traceback (most recent call last):
File "cfg.py", line 2, in
from angrutils import *
File "/usr/local/lib/python2.7/dist-packages/angrutils/init.py", line 1, in
from .visualize import *
File "/usr/local/lib/python2.7/dist-packages/angrutils/visualize.py", line 6, in
from bingraphvis.angr import *
File "/usr/local/lib/python2.7/dist-packages/bingraphvis/angr/init.py", line 7, in
from .factory import *
File "/usr/local/lib/python2.7/dist-packages/bingraphvis/angr/factory.py", line 4, in
from .arm import *
ImportError: No module named arm
Hello,
I am currently exploring angr's VFG analysis, but I cannot visualize the VFG, by following the CFG example and changing cfg.graph to vfg.graph... It would be nice if you can show me the way to generate graphically the VFG.
Thanks a lot
Add support for post-dominance and control dependence on top level, without the need of information from underlying bin-analysis framework
Hey,
It's not possible to user angr_utils in python3 due to this package not being up to date on pypi. Can you update pypi please?
When performing CFGEmulated analysis the returning nodes type is CFGENode so when its checked in the annotators logic with type(node).__name__
, e.g. at:
bingraphvis/bingraphvis/angr/content.py
Line 215 in eb96191
CFGENode
type.isinstance(node, angr.analyses.cfg.cfg_node.CFGNode)
instead of the current string comparisons.The function callgraph generated by plot_cg() does not use demanged_names. (demanged_names appear to be available for non-stripped ELF binary files, and possibly for windows PE files w/ accompanying .pdb file though I have not tested this myself.)
Looks like in angr-dev/bingraphvis/bingraphvis/base.py in VisPipeLine.process() perhaps this can be handled? (I may have this totally wrong, I just looked around code a bit and thought this may be where support for use of demangled_names may go.)
Class VisPipeLine(object):
...
def process(self, filter=None):
if filter is None:
graph = self.graph
else:
graph = self.graph.filtered_view(filter)
for ea in self.edge_annotators:
ea.set_graph(graph)
for na in self.node_annotators:
na.set_graph(graph)
for n in graph.nodes:
for c in self.content.values():
c.render(n)
for na in self.node_annotators:
na.annotate_node(n)
for e in graph.edges:
for ea in self.edge_annotators:
ea.annotate_edge(e)
for c in self.clusterers:
c.cluster(graph)
return graph
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.