> 文章列表 > Linux高阶命令:编译和反编译

Linux高阶命令:编译和反编译

Linux高阶命令:编译和反编译

一、编译和反编译

1、编译单个C语言源文件:

命令格式: gcc 文件名.c -o 输出文件名
命令解释: 使用gcc编译器编译源文件,并指定生成的可执行文件名。
例子:(在Ubuntu下)
先建立并编辑一个简单的C语言程序:

nano test.c  # 使用nano编辑器

在这里插入图片描述
保存并退出,编译:

gcc test.c -o test

执行程序:

./test

在这里插入图片描述

2、编译汇编语言文件:

命令格式: gcc -m32 -c 文件名.s
得到二进制文件 文件名.o
例子:(在Ubuntu下)
先建立并编辑一个简单的汇编语言文件:

nano test.s. # 使用nano编辑器

编辑内容,保存并退出:
在这里插入图片描述
执行以下命令进行编译:

gcc -m32 -c test.s

看到生成的test.o:
在这里插入图片描述

3、反编译可执行文件:

**命令格式:**objdump -d 文件名
例子: 反编译之前得到的test(反编译生成机器代码)

objdump -d test

得到如下结果:
在这里插入图片描述

4、反编译二进制文件:

命令格式: objdump -d 文件名
例子: 反编译之前得到的test.o

objdump -d test2.o

得到如下结果:
在这里插入图片描述
在反汇编结果中可以看到相应的汇编语言命令。