如何解决如何阅读汇编
我使用 gdb 反汇编了一个二进制文件,并试图了解该程序在做什么。我对程序集告诉我的内容有基本的了解,但我不明白十六进制数字。
如何判断十六进制数是代表数字还是字符串?例如,mov $0x40065c,%edi。我可以看到一个值被移动到 %edi 中,但这是一个数字还是一个字符串?
这是我正在处理的代码:
0x000000000040057d <+0>: push %rbp
0x000000000040057e <+1>: mov %rsp,%rbp
0x0000000000400581 <+4>: mov $0x400634,%edi
0x0000000000400586 <+9>: callq 0x400450 <puts@plt>
0x000000000040058b <+14>: mov $0x400648,%edi
0x0000000000400590 <+19>: callq 0x400450 <puts@plt>
0x0000000000400595 <+24>: mov $0x40065c,%edi
0x000000000040059a <+29>: callq 0x400450 <puts@plt>
0x000000000040059f <+34>: mov $0x0,%edi
0x00000000004005a4 <+39>: callq 0x400480 <exit@plt>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。