Como posso fazer com que o IDA Pro "veja" o XREFS em uma string?
Pergunta
Atualmente, estou desmontando um executável Mach-O no IDA Pro. Passei e encontrei a corda em que estou interessado, mas quando tento encontrar XREFs, ninguém pode ser encontrado. Tenho certeza de que as strings são mencionadas no código original, mas o IDA Pro parece não conseguir descobrir como são referenciadas.
Existem truques que podem ser executados para obter o IDA Pro para ver o XREFS?
Solução
Você já deu tempo suficiente para ter analisado todo o programa? Se houver uma referência, pode levar algum tempo até encontrá -lo em um programa grande.
Também é possível que seja referenciado por instruções para as quais a IDA não consegue encontrar um caminho de fluxo. Isso pode acontecer com mesas de salto onde a IDA não consegue adivinhar o tamanho da tabela. A razão para o I
Na IDA, você olha para as instruções que precisam de julgamento e interpretação adequada e as definem para o tipo apropriado para que a IDA possa fazer a maior parte do trabalho.
Outras dicas
É possível que a string pertence a uma matriz de string e o primeiro elemento da string seja referência pelo IDA Pro.
Exemplo:
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"
Então, tente encontrar referência a strings próximas à sua corda e veja se elas pertencem a uma mesa, crie uma matriz, etc ...
Função de script IDC add_dref()
Seria o que você está procurando.