IDA has disassembled the following code:
seg019:C0292548 loc_C0292548 ; CODE XREF: sub_C0292414+11Cj
seg019:C0292548 02 00 54 E3 CMP R4, #2
seg019:C029254C 0F 00 00 1A BNE loc_C0292590
seg019:C0292550 F0 30 9F E5 LDR R3, =0xC0298608
seg019:C0292554 02 2C A0 E3+ MOV R2, 0x205
seg019:C029255C 00 30 93 E5 LDR R3, [R3]
seg019:C0292560 02 00 53 E1 CMP R3, R2
seg019:C0292564 04 00 00 1A BNE loc_C029257C
seg019:C0292568 D4 00 9F E5 LDR R0, =0xC02860F0
seg019:C029256C 53 FC FF EB BL sub_C02916C0
seg019:C0292570 2B 30 A0 E3 MOV R3, #0x2B
seg019:C0292574 7F 20 A0 E3 MOV R2, #0x7F
seg019:C0292578 08 00 00 EA B loc_C02925A0
If I hit enter on 0xC02860F0
, it takes me to:
seg019:C02860F0 50 DCB 0x50 ; P
seg019:C02860F1 00 DCB 0
seg019:C02860F2 6F DCB 0x6F ; o
seg019:C02860F3 00 DCB 0
seg019:C02860F4 77 DCB 0x77 ; w
seg019:C02860F5 00 DCB 0
seg019:C02860F6 65 DCB 0x65 ; e
seg019:C02860F7 00 DCB 0
seg019:C02860F8 72 DCB 0x72 ; r
seg019:C02860F9 00 DCB 0
[...]
Which is clearly a UTF-16 little-endian string. However, IDA hasn't created any of the appropriate cross-references (^X on the string doesn't list anything). How can I get it to do this? It seems to have done it automatically when I first loaded the code, but I have loaded additional segments since then and it hasn't done the same for them. I tried re-running the autoanalysis with no effect.
I suppose that I could go through the binary with IDAPython and manually create the references to anything that's listed in the Strings window, but this seems very cumbersome given that IDA normally does this for me.
Any ideas?