我正在读一个有人回答的问题:Assembly language - third element points to
他们提到了 位置0x4024FFA4处的字符串读取43 4F 4D 50 55 54 45 52 00,当解释为ASCII时,可以将其解码为“COMPUTER”。请注意,每个地址的字节顺序意味着我们必须从右到左读取字节。
我正试着看看他们是如何得到0x4024FFA4到43 4F 4D 50 55 54 45 52 00.我不确定他们是怎么做到的。我能够使用asci表将十六进制代码输入计算机。但我无法弄清楚字符串代码是什么
答案 0 :(得分:1)
这很简单。在没有观察正在运行的程序或者至少是反汇编的代码(如果字符串存储在静态位置)的情况下,你无法从指针(0x4024FFA4)到字符。
但通常如果你有:
char * mystring;
然后检查gdb中的mystring例如,将打印指针,它可以是任何东西(但在它们的情况下它是上面的地址)。从那里,您可以通过检查打印位置和后续地址((char )0x4024FFA4,(char )0x4024FFA5等)来获取字母。
已添加:在您链接的帖子中,您会看到第一列显示地址0x4024FFA4的内存。所以你就去那里读字符。