Как я могу заставить IDA Pro «видеть» внешние ссылки в строке? - PullRequest
3 голосов
/ 19 декабря 2009

В настоящее время я разбираю исполняемый файл Mach-O в IDA Pro. Я прошел и нашел интересующую меня строку, но когда я пытаюсь найти внешние ссылки на нее, ни одна не может быть найдена. Я уверен, что на строки ссылаются в исходном коде, но, похоже, IDA Pro не может выяснить, как на них ссылаются.

Есть ли какие-нибудь трюки, чтобы IDA Pro увидела внешние ссылки?

Ответы [ 3 ]

3 голосов
/ 12 августа 2010

Возможно, строка принадлежит массиву строк, и первый элемент строки является ссылкой 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"

Итак, попробуйте найти ссылку на строки рядом с вашей строкой и посмотреть, принадлежат ли они таблице, создать массив и т. Д ...

3 голосов
/ 19 декабря 2009

Вы дали достаточно времени, чтобы проанализировать всю программу? Если есть ссылка, может пройти некоторое время, прежде чем она найдет ее в большой программе.

Также возможно, что на него ссылаются инструкции, для которых IDA не может найти путь потока. Это может произойти с таблицами переходов, где IDA не может угадать размер таблицы. Причина для I в IDA состоит в том, что вы смотрите на инструкции, которые требуют суждения и правильного толкования, и устанавливаете их на соответствующий тип, чтобы IDA могла выполнять большую часть работы.

1 голос
/ 04 июня 2012

Функция сценария IDC add_dref() будет той, которую вы ищете.

...