2015-05-01 2 views
0

Как выполнить GenFuncGdl? Я имею в виду, какие функции idc используются для выполнения GenFuncGdl? Я смотрю idc.py, об этой функции:Как выполнить IDA GenFuncGdl?

def GenFuncGdl(outfile, title, ea1, ea2, flags): 
""" 
Generate a flow chart GDL file 

@param outfile: output file name. GDL extension will be used 
@param title: graph title 
@param ea1: beginning of the area to flow chart 
@param ea2: end of the area to flow chart. 
@param flags: combination of CHART_... constants 

@note: If ea2 == BADADDR then ea1 is treated as an address within a function. 
     That function will be flow charted. 
""" 
return idaapi.gen_flow_graph(outfile, title, None, ea1, ea2, flags) 

оттуда, мы просто знаем, что просто называют idaapi.gen_flow_graph.

На самом деле, мне нужно изменить поток функций, потому что в этой функции много ветвей, я не знаю, как распознать куски ветви. только проверить подсказку, может быть?

ответ

0

Как вы видели, idaapi.gen_flow_graph просто вызовет встроенную функцию IDA C++.

Ваш вопрос не ясно, о том, что вы пытаетесь достичь точности (найти куски в GDL файл?)

Если вы просто хотите, чтобы найти функцию ломти, то вы можете использовать idautils.Chunks() функцию, которая возвращает питона генератор с начальным и конечным адресами всех кусков в функции.

+0

Я хочу получить график потока для каждой функции, как и результаты idaapi.gen_flow_graph, но я не хочу называть это. Я знаю, что будет файл формата GDL, если вы вызовите gen_flow_graph, неуклюжий способ достичь моей цели - проанализировать этот файл GDL. – Keen

Смежные вопросы