radare2 无法解析 XREF

逆向工程 雷达2
2021-06-17 19:36:37

我正在尝试分析学习示例一些文章说明了radar2 的工作,并且有radar2 通过XREF 解析字符串:

0x00400ee4    be00244000   mov esi, str.Border_relations_with_Canada_have_never_been_better. ; "Border relations with Canada have never been better" @ 0x402400

但是我的radar2实例打印:

0x00400ee4    be00244000   mov esi, str.BorderrelationswithCanadahaveneverbeenbetter. ; CODE (CALL) XREF from 0x00401338 (unk)

我怎么能看到这个字符串?也许我必须指定一些设置?(PS Miscusi 我的英语,如果不正确)

UPD:使用strings ./binaryFile | grep someTemplate,我找到字符串...但radare2 行为具有更高的优先级。因此该字符串存在于文件中。

1个回答

您使用的radare 版本似乎与示例中使用的版本略有不同。

请注意, to 的第二个参数mov esi,不是字符串本身,而是字符串在内存中的地址。radare 检测看起来像字符串的内容,在该地址生成一个标签,并使用该标签作为mov esi指令中地址的同义词

由于标签不能包含空格,radare 必须以某种方式处理它们。似乎radare的示例版本用下划线替换了它们,而您的版本只是省略了它们。但是,这是标签的名称,而不是真正的字符串,如果您在该位置显示内存,您应该看到真实的字符串,包括空格字符。