mirror of
https://github.com/idapython/src
synced 2026-06-08 14:47:00 +00:00
40 lines
929 B
Python
40 lines
929 B
Python
"""
|
|
summary: produce C listing for the entire file
|
|
|
|
description:
|
|
automate IDA to perform auto-analysis on a file and,
|
|
once that is done, produce a .c file containing the
|
|
decompilation of all the functions in that file.
|
|
|
|
Run like so:
|
|
|
|
ida -A "-S...path/to/produce_c_file.py" <binary-file>
|
|
|
|
where:
|
|
|
|
* -A instructs IDA to run in non-interactive mode
|
|
* -S holds a path to the script to run (note this is a single token;
|
|
there is no space between '-S' and its path.)
|
|
|
|
level: beginner
|
|
"""
|
|
|
|
import ida_pro
|
|
import ida_auto
|
|
import ida_loader
|
|
import ida_hexrays
|
|
|
|
# derive output file name
|
|
idb_path = ida_loader.get_path(ida_loader.PATH_TYPE_IDB)
|
|
c_path = "%s.c" % idb_path
|
|
|
|
ida_auto.auto_wait() # wait for end of auto-analysis
|
|
ida_hexrays.decompile_many( # generate .c file
|
|
c_path,
|
|
None,
|
|
ida_hexrays.VDRUN_NEWFILE
|
|
|ida_hexrays.VDRUN_SILENT
|
|
|ida_hexrays.VDRUN_MAYSTOP)
|
|
|
|
ida_pro.qexit(0)
|