[英]Ida pro gragh output batch mode
谁能让我知道我们将如何使用IDC
以批处理方式输出所有子例程的图形。 即我有447个子例程,想全部输出,我想确保我先自动检索所有例程地址,因为知道该地址我可以简单地使用GenFuncCall
。 PS:给定二进制反汇编文件后,这是我从Ida Pro可获得的唯一CFG吗?
我需要整个程序的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}
提示:
打开图形处理器可能会导致计时问题,使其变黑,但是诸如延迟执行脚本之类的事情似乎有所帮助,例如
idaapi.autoWait() Timer(2, idacfg).start()
idacfg是示例中的python函数
打印到stdout似乎在批处理模式下不起作用,因此您需要将stdout设置为文件以进行调试。
希望能有所帮助。
如果您只想获取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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.