目前,我正在 IDA Pro 中反汇编 Mach-O 可执行文件。我已经浏览并找到了我感兴趣的字符串,但是当我尝试找到它的外部参照时,找不到任何东西。我确定在原始代码中引用了这些字符串,但 IDA Pro 似乎无法找出它们是如何被引用的。
是否有任何技巧可以让 IDA Pro 查看外部参照?
您是否给了它足够的时间来分析整个程序?如果有引用,它可能需要一段时间才能在大型程序中找到它。
它也有可能被 IDA 找不到流向的指令所引用。这可能发生在 IDA 无法猜测表大小的跳转表中。在 IDA 中使用的原因I
是您查看需要判断和正确解释的指令并将它们设置为适当的类型,以便 IDA 可以完成大部分工作。
字符串可能属于字符串数组,并且字符串的第一个元素被 IDA Pro 引用。
例子:
str_table dd offset str1 ; ^xrefs: display_message(int idx)
dd offset str2
dd offset 0x1234 (if you press ctrl+o it may resolve to mystr)
mystr db "Hello world"
所以,试着在你的字符串附近找到对字符串的引用,看看它们是否属于一个表,创建一个数组,等等......
idc 脚本功能add_dref()
将是您正在寻找的功能。