我想调试包含大量 C 字符串的固件(基于 ARM)。IDA Pro 7.2 似乎在检测包含特殊字符(7 位 ASCII 以上)的字符串时出现问题。这是西班牙语单词“navegación”的一个例子,其中包含一个变音符号“o”:
MAIN:0007AE4D DCB 0x4E ; N
MAIN:0007AE4E DCB 0x61 ; a
MAIN:0007AE4F DCB 0x76 ; v
MAIN:0007AE50 DCB 0x65 ; e
MAIN:0007AE51 DCB 0x67 ; g
MAIN:0007AE52 DCB 0x61 ; a
MAIN:0007AE53 DCB 0x63 ; c
MAIN:0007AE54 DCB 0x69 ; i
MAIN:0007AE55 DCB 0xF3
MAIN:0007AE56 DCB 0x6E ; n
MAIN:0007AE57 DCB 0
您会看到 0xF3 是有效的 ASCII 字符(ISO Latin-1),但 IDA 未将其检测为有效字符。如果我现在在第一个字母上按“a”(或者让 IDA 进行字符串检测),我会得到这样的结果:
MAIN:0007AE4D aNavegaci DCB "Navegaci"
MAIN:0007AE55 DCB 0xF3
MAIN:0007AE56 DCB 0x6E ; n
MAIN:0007AE57 DCB 0
它看到的字符就好像它是一个字符串终止字符。我怎样才能让 IDA 至少忽略这些特殊字符,而只依靠我的设置以 C 样式(0x00 终止)显示字符串?