![C++反汇编与逆向分析技术揭秘(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/733/40796733/b_40796733.jpg)
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所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/024-1.jpg?sign=1739285565-JV83MKxE8Rvghn2ohN9Ak11ly9xlpMpS-0-5ef3854e981076df10a16134eb8b3ff6)
图1-10 MinGW-w64下载
单击Download进行下载,下载完成后运行mingw-w64-install.exe,按照图1-11所示选择安装设置。安装设置说明如下。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/024-2.jpg?sign=1739285565-tFbNW38o9OOOcmIz1ESn3Nhx5ZjXkkDc-0-b341417d09018b11f8ca1f7e4cfaef39)
图1-11 MinGW-w64安装选项
- Version:编译器版本,选择最新版8.1.0。
- Architecture:CPU,选择x86-64。
- Threads:线程API,选择win32。
- Exception:异常处理库,选择sjlj库,它可以同时支持32位和64位程序的异常处理。
- Build revision:默认项。
设置安装路径,单击Next直到安装完成,如图1-12所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/025-1.jpg?sign=1739285565-E5bxt1fqYjzcuBuZ1e9e25k1cKt7x1VF-0-5572c3b3afa5aafad27fc292a29b5419)
图1-12 MinGW-w64安装
2. 配置环境变量
将MinGW-w64的bin目录设为环境变量,鼠标右键选中桌面“此电脑”→“系统”→“高级系统设置”→“环境变量”,如图1-13所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/025-2.jpg?sign=1739285565-f4ghhJchWbS8k36e13rFSVGShmOVrQgB-0-6f5dc6791ed8c3c0e950e835a2f101a1)
图1-13 环境变量设置入口
双击Path变量,单击“新建”将bin目录设置为环境变量,最后单击“确定”保存设置,如图1-14所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/026-1.jpg?sign=1739285565-WwqS4UJKMZSdL7NDHDIhypRbQhO1V39B-0-4277a7618ae4b39f0b0751a338a0ab0c)
图1-14 环境变量设置
单击开始菜单运行cmd,输入gcc -v查看gcc版本信息是否安装成功,如图1-15所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/026-2.jpg?sign=1739285565-IgSDycCcF2VHdOKfc3Ue0EbulFCRRaN6-0-c67c254b474d6759779f24006715809c)
图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所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/027-1.jpg?sign=1739285565-HpXqA3wBV1EEzf1c6UYoPwAApsFQW54J-0-7a48dc362db698ce4b50868ce019c6df)
图1-16 安装Clang
运行下载LLVM-8.0.1-win64.exe,选择安装目录,一直单击“下一步”直到安装完成,如图1-17所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/028-1.jpg?sign=1739285565-ZgEiSGx2A7TUDfX2f9gtfF7PceraXiYr-0-c1713bc466375078c38cd274e50da83c)
图1-17 Clang安装
将Clang安装路径的bin目录设置到环境变量,为防止与VS2019的Clang编译器冲突,可调整环境变量顺序。运行cmd并输入命令clang -v,显示版本信息表示安装成功,如图1-18所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/028-2.jpg?sign=1739285565-BxORzmiU2p9EwQ9nLnyd7Oo2e1WiiqEG-0-f7f7250c0c0e66eb2df970aa9a38cbb7)
图1-18 Clang安装成功
(2)编译
运行cmd,输入以下命令编译程序,编译选项与GCC一致,其中O0表示Debug版,如图1-19所示。
cd <源码目录> clang -m32 -O0 -o x86_clang.exe hello.c
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/028-3.jpg?sign=1739285565-2TCanMzlpJIaZ8Fa110QQM71aAb4naDr-0-60ecc80075b04c290327bd690c256e6c)
图1-19 使用Clang编译程序