ida批量下断点追踪函数调用

on under 二进制
1 minute read

0x01 About

ida在调试ios时,即使用了usb连接,调试的时候也经常会卡(如遇到多线程),无法通过ida强大的trace功能快速定位到关键操作对应的函数及代码,为解决这个问题,可通过先分析出关键操作涉及到的类(一般不多,3-5个),然后在这些类的所有函数上下trace断点(类似于frida-trace的功能),以此模糊分析出关键操作对应的代码执行流程,一般在正常的ipa中这些函数的个数大概在500-1000个左右,手动下断点无法解决,本文通过idapython插件解决这个问题.

0x02 idapython常见用法

0x3 代码

# coding=utf8
#!/usr/bin/python
classes=ida_kernwin.ask_text(0, "", "请输入想要trace的类,以空格分开")
class_list=classes.split(" ")
for func_addr in Functions():    
    func_name=GetFunctionName(func_addr)
    for class_name in class_list:
        if class_name+" " in func_name:
            if add_bpt(func_addr):
                set_bpt_attr(func_addr,BPTATTR_FLAGS,BPT_TRACE)
                print "%s:添加断点成功" % func_name

or you can download here

ida, idapython, ios, objc
home
github
archive
category