Git Product home page Git Product logo

Comments (11)

cblichmann avatar cblichmann commented on May 4, 2024 1

This is a BinDiff issue, filed issue 143198645 for this.

SEVERE: EXCEPTION: Open flow graph view failed. Couldn't create flowgraph.
com.google.security.zynamics.bindiff.exceptions.GraphCreationException: Primary and secondary flowgraph cannot both be null. Combined flow graphs creation failed.
        at com.google.security.zynamics.bindiff.project.builders.RawCombinedFlowGraphBuilder.buildRawCombinedFlowgraph(RawCombinedFlowGraphBuilder.java:239)
        at com.google.security.zynamics.bindiff.project.diff.FlowGraphViewLoader.loadFlowgraphViewData(FlowGraphViewLoader.java:102)
        at com.google.security.zynamics.bindiff.project.diff.FlowGraphViewLoader.runExpensiveCommand(FlowGraphViewLoader.java:165)
        at com.google.security.zynamics.zylib.gui.ProgressDialogs.CEndlessHelperThread.run(CEndlessHelperThread.java:65)

from binexport.

cblichmann avatar cblichmann commented on May 4, 2024

4.2 cannot read the current BinExport files. But 4.3 can. You can use the command-line differ and open the files in the BinDiff UI afterwards:

/path/to/differ \
  --primary /path/to/first.BinExport \
  --secondary /path/to/second.BinExport \
  --output_dir /dir/for/results/

from binexport.

scottcarr avatar scottcarr commented on May 4, 2024

Awesome! Thanks a lot.

When I try to look at the FlowGraph for a function, I get the following error a lot (but not always):

INFO:  - Building combined flow graphs
SEVERE: EXCEPTION: Open flow graph view failed. Couldn't create flowgraph.
java.lang.NullPointerException
	at com.google.security.zynamics.bindiff.graph.builders.ViewCodeNodeBuilder.buildOperands(ViewCodeNodeBuilder.java:250)
	at com.google.security.zynamics.bindiff.graph.builders.ViewCodeNodeBuilder.buildInstruction(ViewCodeNodeBuilder.java:720)
	at com.google.security.zynamics.bindiff.graph.builders.ViewCodeNodeBuilder.buildUnmatchedCodeNodeContent(ViewCodeNodeBuilder.java:462)
	at com.google.security.zynamics.bindiff.graph.builders.ViewCodeNodeBuilder.buildSingleCodeNodeContent(ViewCodeNodeBuilder.java:810)
	at com.google.security.zynamics.bindiff.graph.builders.ViewFlowGraphBuilder.buildSingleBasicblockLabelContent(ViewFlowGraphBuilder.java:411)
	at com.google.security.zynamics.bindiff.graph.builders.ViewFlowGraphBuilder.buildFlowgraphNodeMaps(ViewFlowGraphBuilder.java:330)
	at com.google.security.zynamics.bindiff.graph.builders.ViewFlowGraphBuilder.buildViewFlowgraphs(ViewFlowGraphBuilder.java:456)
	at com.google.security.zynamics.bindiff.project.diff.FlowGraphViewLoader.loadFlowgraphViewData(FlowGraphViewLoader.java:107)
	at com.google.security.zynamics.bindiff.project.diff.FlowGraphViewLoader.runExpensiveCommand(FlowGraphViewLoader.java:165)
	at com.google.security.zynamics.zylib.gui.ProgressDialogs.CEndlessHelperThread.run(CEndlessHelperThread.java:65)

For some functions, BinDiff creates the FlowGraph without error.

Any idea what the cause could be?

from binexport.

cblichmann avatar cblichmann commented on May 4, 2024

Hmm, any chance you can share the .BinExport files and a function address for which this happens?

from binexport.

shooshx avatar shooshx commented on May 4, 2024

Hey, I also just ran into this exact exception trying to do a bindiff between two ARM binaries from IDA. Is there any fix or workaround?

from binexport.

cblichmann avatar cblichmann commented on May 4, 2024

@shooshx, are you able to share BinExport files and tell me for which functions this happens?

from binexport.

shooshx avatar shooshx commented on May 4, 2024

No, unfortunately I can't. this is a proprietary binary file

from binexport.

scottcarr avatar scottcarr commented on May 4, 2024

@cblichmann Please fine the BinExport files here: https://github.com/scottcarr/scottcarr.github.com/raw/master/images/dot_binexports.zip

Opening function sub_00004390 causes the error message. Thanks.

from binexport.

cblichmann avatar cblichmann commented on May 4, 2024

BinDiff 5, which was released yesterday can do it:

$ bindiff --primary bcm_dynamic_memory.BinExport --secondary bcm_running_memory.BinExport
BinDiff 5, (c)2004-2011 zynamics GmbH, (c)2011-2019 Google LLC.
Function 00001F78 is excessively large: 3 basic blocks, 2 edges, 10849 instructions. Discarding.                                                              
Function 001E98F8 is excessively large: 6 basic blocks, 5 edges, 14960 instructions. Discarding.                                                              
Function 001E997C is excessively large: 5 basic blocks, 4 edges, 14894 instructions. Discarding.                                                              
Function 001EAFB0 is excessively large: 4 basic blocks, 3 edges, 12052 instructions. Discarding.                                                              
Function 001EAFD4 is excessively large: 3 basic blocks, 2 edges, 12034 instructions. Discarding.                                                              
Function 00001F78 is excessively large: 3 basic blocks, 2 edges, 11153 instructions. Discarding.                                                              
Function 001E98E8 is excessively large: 7 basic blocks, 6 edges, 15264 instructions. Discarding.                                                              
Function 001E996C is excessively large: 6 basic blocks, 5 edges, 15198 instructions. Discarding.                                                              
Function 001EAFA0 is excessively large: 4 basic blocks, 3 edges, 12356 instructions. Discarding.                                                              
Function 001EAFC4 is excessively large: 3 basic blocks, 2 edges, 12338 instructions. Discarding.                                                              
Function 00231B2C is excessively large: 68 basic blocks, 96 edges, 15576 instructions. Discarding.                                                            
Setup: 0.68s
primary:   bcm_dynamic_memory: 6208 functions, 32088 calls
secondary: bcm_running_memory: 6302 functions, 32540 calls
Matching: 0.55s
matched: 6192 of 6208/6302 (primary/secondary, 6208/6302 non-library)
call graph MD index: primary   326.426
                     secondary 332.24
Similarity: 98.1827% (Confidence: 99.1751%)
Writing results: 0.57s

Note that due to issue 70541404, you will need to re-export.

from binexport.

fbqc avatar fbqc commented on May 4, 2024

@cblichmann have you tried to open the flowgraph of function sub_00004390 in the UI after the diffing process? That's when the error occurs : "Open flow graph view failed. Couldn't create flowgraph" . With latest Bindiff and Binexport versions, I still have the same error as @scottcarr .

from binexport.

fbqc avatar fbqc commented on May 4, 2024

@cblichmann Thank you very much !

from binexport.

Related Issues (20)

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.