【问题标题】:IDA Pro get Grey commentsIDA Pro 获得灰色评论
【发布时间】:2021-05-07 00:47:13
【问题描述】:

我有一个 iOS 应用程序反汇编,它具有以下块:

在我们想从 IDAPython 中捕获的非常感兴趣的图片中有“灰色”的 cmets。例如哪些选择器用于导入的框架对象,例如UIWindowCLHeading 等。IDA python 只调用获取可重复的 cmets、常规 cmets 和函数 cmets。知道哪个 idc/idapython 函数会得到这个“灰色”的 cmets 吗?我认为它们是来自某个地方的可重复的 cmets。谢谢。

更新

灰色的 cmets 是可重复的 cmets,所以我尝试按照标记的地址(第三行上的 selRef_setLastHeading)到可重复的注释并到达这一行:

但是,当我在该地址执行 RptCmt(here()) 时,我希望 @selector(setLastHeading:) 作为评论返回,但它返回了一个空字符串..

【问题讨论】:

    标签: ios objective-c assembly arm ida


    【解决方案1】:

    灰色 cmets 是引用项目的重复 cmets,因此对于第三行的第一个灰色注释,如果您转到 selRef_setLastHeading_,它应该有一个重复注释。

    如果这是在结构化数据块中,我会说读取地址,然后将其用于评论请求功能(抱歉没有 IDApython 经验,只是 IDC 脚本)。但由于它们是指令的操作数,对于这种类型的事情,我倾向于编写一个脚本,该脚本具有基于指令的开关,因此您知道如何解码参考地址。

    【讨论】:

    • 是的,我按照地址指向selRef_setLastHeading_ 的实际可重复注释定义,但是当我在该位置执行RptCmt(ea) 时,它返回一个空字符串,尽管它不是none 类型。奇怪..但感谢您的回复
    【解决方案2】:

    我发现了一种获取灰色 cmets 的愚蠢方法,如下所示。

    widget = ida_kernwin.open_xrefs_window(pk_ea)
    title = ida_kernwin.get_widget_title(widget)
    ida_kernwin.close_widget(widget,0)
    print(title)
    

    【讨论】:

    • 详细说明为什么你的代码可以帮助 OP 比“愚蠢的方式”更有帮助
    猜你喜欢
    • 2015-01-17
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    相关资源
    最近更新 更多