我有一个使用简单c程序的gcc编译的二进制文件。 我正在编写自己的反汇编程序,我能够从ELF文件中读取ELF标题和其他标题。
我正在阅读ELF二进制文件中的#text; .text"部分。并尝试将opecode转换为助记符/汇编指令。
如何将原始操作码/机器代码转换为助记符/汇编指令? C源代码是:
#include <stdio.h>
int main()
{
int i = 10;
int j = 22 + i;
return 0;
}
以下是我在阅读ELF文件后收到的原始操作码示例:
55 ffffff89 ffffffe5 ffffff83 ffffffec 20 ffffffc7 45 ffffffec 3 ffffffc7 45
fffffff0 41 ffffffc7 45 fffffff4 8 ffffffc7 45 fffffff8 21 ffffff8b 45
ffffffec ffffff83 ffffffc0 16 ffffff89 45 fffffffc ffffffb8 ffffffc9 ffffffc3
答案 0 :(得分:2)
如果你安装了 GNU binutils (你可能有),你可以使用
objdump --disassemble elf-file
如果问题是&#34;为什么我会得到那些ffffff数字&#34;,那么你需要向我们展示产生数字的代码。您很可能从签名字符到int。符号扩展问题。