IDA反汇编了以下代码:
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
如果我点击 enter on 0xC02860F0
,它会带我:
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
[...]
这显然是一个 UTF-16 little-endian 字符串。但是,IDA 尚未创建任何适当的交叉引用(字符串中的 ^X 未列出任何内容)。我怎样才能让它做到这一点?当我第一次加载代码时,它似乎已经自动完成了,但是从那时起我已经加载了额外的段并且它没有为它们做同样的事情。我尝试重新运行自动分析,但没有任何效果。
我想我可以使用 IDAPython 浏览二进制文件并手动创建对“字符串”窗口中列出的任何内容的引用,但是鉴于 IDA 通常为我执行此操作,这似乎非常麻烦。
有任何想法吗?