Code Monkey home page Code Monkey logo

bingraphvis's People

Contributors

axt avatar kyle-kyle avatar tyb0807 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bingraphvis's Issues

No module named arm

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

VFG visualization example

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

top-level CDG support

Add support for post-dominance and control dependence on top level, without the need of information from underlying bin-analysis framework

Assembly annotation not working on CFGENode

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:

if type(node).__name__ == 'CFGNode' or type(node).__name__ == 'CFGNodeA':

it won't match the CFGENode type.
The best way to fix this is to check the for the base class matching CFGNode: isinstance(node, angr.analyses.cfg.cfg_node.CFGNode) instead of the current string comparisons.

Can plot_cg(cfg.kb, 'out.png') call use demangled_name for function node names?

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.