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编译程序