Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ghidra does not set FlowGraph.Edge.is_back_edge used to indicate loops #131

Open
mr-tz opened this issue May 29, 2024 · 1 comment
Open
Labels
bug Something isn't working

Comments

@mr-tz
Copy link

mr-tz commented May 29, 2024

I think this should happen in this function:

private void buildFlowGraphs(Map<Long, Integer> basicBlockIndices) throws CancelledException {

Related function for IDA:

void WriteFlowGraphs(const FlowGraph& flow_graph, BinExport2* proto) {

@mike-hunhoff
Copy link
Contributor

@cblichmann can you clarify what is responsible for setting back edges? My understanding is that the underlying disassembler (IDA, Ghidra, etc.) builds a flow graph from which BinExport core uses https://github.com/google/binexport/blob/main/function.h#L72 to calculate back edges? If my understanding is correct, then it may be that the Ghidra extension is not generating flow graphs correctly (or at least this would be a good place to start before digging into BinExport core).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants