1.2 安装GCC
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的支持C/C++的编译器。它是以GPL许可证发行的自由软件,是一个跨平台的编译器,现已被大部分操作系统(如Windows、Linux、macOS等)采纳为标准编译器。在软件逆向工程中,经常会遇见使用GCC编译的应用程序。在Windows上安装GCC可以选择安装Cygwin或者MinGW-w64,本节将介绍MinGW-w64的安装。
1. 下载安装MinGW-w64
MinGW-w64的官方地址为http://mingw-w64.org,下载地址为https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/,下载页面如图1-10所示。
图1-10 MinGW-w64下载
单击Download进行下载,下载完成后运行mingw-w64-install.exe,按照图1-11所示选择安装设置。安装设置说明如下。
图1-11 MinGW-w64安装选项
- Version:编译器版本,选择最新版8.1.0。
- Architecture:CPU,选择x86-64。
- Threads:线程API,选择win32。
- Exception:异常处理库,选择sjlj库,它可以同时支持32位和64位程序的异常处理。
- Build revision:默认项。
设置安装路径,单击Next直到安装完成,如图1-12所示。
图1-12 MinGW-w64安装
2. 配置环境变量
将MinGW-w64的bin目录设为环境变量,鼠标右键选中桌面“此电脑”→“系统”→“高级系统设置”→“环境变量”,如图1-13所示。
图1-13 环境变量设置入口
双击Path变量,单击“新建”将bin目录设置为环境变量,最后单击“确定”保存设置,如图1-14所示。
图1-14 环境变量设置
单击开始菜单运行cmd,输入gcc -v查看gcc版本信息是否安装成功,如图1-15所示。
图1-15 查看gcc版本信息
3. 编译
运行cmd,输入以下命令编译程序。
cd <源码目录> gcc -m32 -O2 -o x86_gcc.exe hello.c
编译选项说明如下。
- -m32表示编译32位程序,-m64表示编译64位程序。
- -O2表示编译Release版,以最快执行速度优化;默认编译Debug版。
- -o指定可执行文件名称,是现在比较流行的一个编译器,越来越多的软件选择使用Clang编译器编译。
(1)下载并安装Clang
Clang的官方下载地址为http://releases.llvm.org/download.html,选择下载Windows版本,如图1-16所示。
图1-16 安装Clang
运行下载LLVM-8.0.1-win64.exe,选择安装目录,一直单击“下一步”直到安装完成,如图1-17所示。
图1-17 Clang安装
将Clang安装路径的bin目录设置到环境变量,为防止与VS2019的Clang编译器冲突,可调整环境变量顺序。运行cmd并输入命令clang -v,显示版本信息表示安装成功,如图1-18所示。
图1-18 Clang安装成功
(2)编译
运行cmd,输入以下命令编译程序,编译选项与GCC一致,其中O0表示Debug版,如图1-19所示。
cd <源码目录> clang -m32 -O0 -o x86_clang.exe hello.c
图1-19 使用Clang编译程序