- C++反汇编与逆向分析技术揭秘(第2版)
- 钱林松 张延清
- 824字
- 2021-09-27 17:05:07
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=1738924547-iutT6Ojh9xH8YU8URE5oT7g20CkWaiBL-0-bf6e49d824e29cf59f720841974f95b9)
图1-10 MinGW-w64下载
单击Download进行下载,下载完成后运行mingw-w64-install.exe,按照图1-11所示选择安装设置。安装设置说明如下。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/024-2.jpg?sign=1738924547-6G89z6JK4bcusa2ApzkHH5SInEI2Noyt-0-2ceefc587eb89de0643901ea5c386c30)
图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=1738924547-ki9HdzhmQZr8jSBcUd5j41OtHtusTvKQ-0-9fe96b7e56108abeb69988628981262a)
图1-12 MinGW-w64安装
2. 配置环境变量
将MinGW-w64的bin目录设为环境变量,鼠标右键选中桌面“此电脑”→“系统”→“高级系统设置”→“环境变量”,如图1-13所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/025-2.jpg?sign=1738924547-Gcsl3pkSAuP4kez7s4RViAvIiAUsbC2o-0-54b24251f296e19f4443465b4bc9a7f1)
图1-13 环境变量设置入口
双击Path变量,单击“新建”将bin目录设置为环境变量,最后单击“确定”保存设置,如图1-14所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/026-1.jpg?sign=1738924547-cL8PUNdCXXPwxyBs1jwrKFwZWHp4evxo-0-fcdb9a490b8a0d28e20fc006e876ba44)
图1-14 环境变量设置
单击开始菜单运行cmd,输入gcc -v查看gcc版本信息是否安装成功,如图1-15所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/026-2.jpg?sign=1738924547-4DhxNJMjsQaUYiqAtH39OwsTSlX092r4-0-9417c5ce196c43729e5d307eef236d8b)
图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=1738924547-e2RHNQ739cRw59WTmi1CYb01PEfm3fpk-0-ac210867c4e631f170cfaa15bfac2837)
图1-16 安装Clang
运行下载LLVM-8.0.1-win64.exe,选择安装目录,一直单击“下一步”直到安装完成,如图1-17所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/028-1.jpg?sign=1738924547-ART7BYxO49pLCX2FKEdl3Rv0RlpZB4eN-0-5426acd50a54e3d9c05e2701023e0fdb)
图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=1738924547-2698yiM8mRyNCOhgesPGvIpbHV4W4ZDX-0-b74f31f9a10e18f6fced68d3d8d67450)
图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=1738924547-UFRTsfkRJJWM7ct8n1Jw4QsCHYNkVdu8-0-dd25589c2010087709726d00e4925f50)
图1-19 使用Clang编译程序