3

I'm writing a plugin for IDA PRO with IDAPython and I need to make a dump of the full disassembled code with offsets.

I know I can export a html file and then parse it but I cannot call the GenerateFile function with the GENFLG_GENHTML flag from the script since that function only works from the gui

idc.GenerateFile(OFILE_LST, idc.GetInputFile()+'.html', 0, idc.BADADDR, GENFLG_GENHTML)

(when I run the plugin it gives me unhandled exception but if I write the same instruction from the IDA command line it works).

I can extract the .asm file but it is not useful to me because it does not contain the offsets. Are there any solutions?

3
  • Do you need an HTML, or just offsets and the ASM?
    – tmr232
    Jan 8, 2016 at 14:22
  • Also, what versions of IDA and IDAPython are you using?
    – tmr232
    Jan 8, 2016 at 14:22
  • @tmr232 I need the full disassembly with the offsets, the output format is not important as long i can parse it. I'm using IDA 6.6
    – zemnl
    Jan 8, 2016 at 15:06

1 Answer 1

1

You're currently passing a string as the second argument to GenerateFile(), but the second argument needs to be a file handle.

8
  • But that same function called from IDA command line works perfecly...
    – zemnl
    Jan 8, 2016 at 15:14
  • That sounds like a nice feature offered by the GUI. However, to use the function from a script you should follow the correct calling convention. Jan 8, 2016 at 15:15
  • So what shoud I do? Create/open a file f = open("file.html", "w") and then use f in GenerateFile?
    – zemnl
    Jan 8, 2016 at 15:29
  • Use fopen(). Jan 8, 2016 at 15:32
  • 1
    Great, looks like you can use Python's open() function then. Jan 8, 2016 at 15:59

Your Answer

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

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