I am totally new to reverse engineering science and does not know much about the assembly language. By the way, I am working on a data set of disassembled malicious files available at kaggle. These files are generated by IDA Pro and I do not have access to executable files or IDA Pro.

In addition, I have read several papers on this topic and tried to implement one of them, this one. However, I need to generate a Function Call Graph from these codes. I have googled for hours, but could not find any open source tool to statically generate this graph from disassembled files.

I am a computer science student, hence, as is expected, I am willing to implement one if there are no ones out there, however, I do not know how or where to begin.

To sum it up, I have the following questions:

1- How to generate function call graphs from disassembled files, statically?
2- Are there any algorithms, tools, or libraries to do this task or similar ones?


1 Answer 1


Note: You'll probably get a better answer on stackoverflow, as your question is more about creating software than about reversing it.

First, you'll want to split your text file into blocks. You can do that looking for the ============= S U B R O U T I N E ============ comments that IDA emits, or checking the sub_XXXX proc [near|far] and sub_XXXX endp markers.

Then, to find your connections, look for the call statements in each of these procedures.

Last, you need to layout the boxes and draw connections. You could use Graphviz to do that (you need to write a definition file in a syntax they call "dot language"), or check the Wikipedia Graph drawing page, which has explanations of the algorithms used, as well as links to various other software packages which might fit your need better.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.