Ida pro gragh输出批处理模式



有人能告诉我我们将如何使用IDC以批处理模式输出所有子例程的图吗。也就是说,我有447个子例程,我想把它们全部输出,我想确保我首先自动检索所有例程的地址,因为知道地址后,我可以简单地使用GenFuncCall。P.S:这是我能从Ida Pro获得的唯一一个二进制文件吗?

我需要整个程序的CFG,我开始的基本示例是:https://code.google.com/p/idapython/source/browse/trunk/examples/ex_gdl_qflow_chart.py

它使用流程图类:https://www.hex-rays.com/products/ida/support/idapython_docs/idaapi.FlowChart-class.html

同样值得注意的是,要在批处理模式下触发,您需要类似于此的东西

idal64-A-S{yourscriptname}.py{yourbinary}

提示:

  • 首先在IDAPro gui中制作脚本原型
  • 打开图形处理器可能会导致时间问题,这很棘手,但像延迟脚本执行这样的事情似乎有帮助,例如

    idaapi.autoWait() Timer(2, idacfg).start()

    其中idacfg是示例中的python函数

  • 打印到stdout在批处理模式下似乎不起作用,因此您需要将stdout设置为一个文件以进行调试。

  • 在批处理模式下关闭GUI对我来说仍然是个问题

希望能有所帮助。

如果你只想要IDB中所有已知函数的地址,你可以使用IDAPython来使用类似的东西(只是一个例子):

def main():
    for count, func_ea in enumerate(Functions()):
        if func_ea == BADADDR:
            break
        func_name = GetFunctionName(funcea)
        func_start = func_ea
        print("[{:4}] name: {}; start address: {:#x}".format(count, func_name, func_start))
if __name__ == "__main__":
    main()

最新更新