Skip to content

idadoc 1.00

I'm going to start a larger project in March which makes it necessary to automatically create documentation from IDA disassemblies. Kinda like javadoc and Doxygen do for all kinds of languages. My latest plugin idadoc does something like that too. It extracts comments from all parts of an IDA database where I assume useful information about functions is stored. I think this first version already satisfies all my needs but there's also still a lot left to improve.

Here's what idadoc can do already:
- Supports function comments
- Supports parameter definitions
- Supports return value definitions
- Picks up specially formed anterior lines inside functions to create detailed descriptions of functions
- Creates a list of code references to functions
- Support for special character replacement (like replacing all \ characters with $\backslash$ in latex)

Here's a sample input file which shows you how to format comments to make idadoc pick them up. The general format closely follows javadoc. Note that I just took a random file and commented two functions, the comments are not necessarily correct. Their only purpose is to show how to format comments for idadoc.

Right now idadoc supports two output formats, HTML and latex. Theoretically a lot more ASCII formats are supported though because idadoc draws all formatting information from so called template files (there's zero formatting information in the plugin binary). It's just that I only made two template files, html.tpl and latex.tpl, so far. If you don't like the layout of the HTML/latex output files or you want completely new output formats you can just create your own template files and use them instead of the default ones.

Using idadoc is pretty simple. Open IDA and annotate a disassembled file according to the idadoc formatting rules. Then choose the idadoc plugin from the plugin menu. A file dialog will pop up asking you for a template file (*.tpl). Once you selected a template file the output is created and idadoc asks you for the name of the output file.

Here's what the HTML output of the sample file looks like
Here's what the PDF created using the latex output of the sample file looks like

Here's the compiled idadoc + the two mentioned template files + the source code of the plugin

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
BBCode format allowed
Form options

Submitted comments will be subject to moderation before being displayed.