![C++反汇编与逆向分析技术揭秘(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/733/40796733/b_40796733.jpg)
1.1 安装Visual Studio 2019
Visual Studio(简称VS)是微软公司开发的工具包产品,是目前最流行的Windows平台应用程序集成开发环境(IDE),最新版本为Visual Studio 2019,本书所有VS程序都使用Visual Studio 2019编译。
1. 安装
VS的官方下载地址为https://visualstudio.microsoft.com/zh-hans/downloads/,下载页面如图1-1所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/019-1.jpg?sign=1739350171-Fd4xvXVyAegO5qTYXpiYAzpnOOBR5MVI-0-bc3378dd0de62adc7433ed4647b3148f)
图1-1 Visual Studio 2019下载页面
下载需要安装的版本,之后运行Visual Studio Installer,选择需要安装的组件,如图1-2所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/020-1.jpg?sign=1739350171-5M4H6dhVZcQX0eeVwWfNqZQZ9DHPq85v-0-c0789f1a28b83cb81c2339c7b94e1033)
图1-2 Visual Studio 2019安装界面
2. 编译
启动Visual Studio 2019,点击“配置新项目”,选择应用程序类型,输入项目名称、位置,之后单击“创建”,如图1-3所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/020-2.jpg?sign=1739350171-0wTEBJ4153AoUywhppePSNnR2Mircc4z-0-9148992d3f834216f929e1985b3960d0)
图1-3 Visual Studio 2019创建项目
单击菜单“生成解决方案”(快捷键Ctrl+Shift+B)完成程序的编译,单击“调试”→“开始执行”(快捷键Ctrl+F5)完成程序的运行。生成的可执行文件32位程序在项目根目录的Debug或Release目录下,64位程序在项目根目录的x64/Debug/或x64/Release目录下。也可以打开反汇编窗口点击“调试”→“窗口”→“反汇编”(快捷键Ctrl+Alt+D),跟踪调试源码与反汇编对应情况,VS Debug/Release程序都支持调试与反汇编,如图1-4所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/021-1.jpg?sign=1739350171-oV9GLlgRUvMXITeACCzkXSXIVhpvZDSO-0-00337f6496a3652c1a930672e539cac9)
图1-4 Visual Studio 2019反汇编调试
VS编译选项设置如图1-5所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/021-2.jpg?sign=1739350171-JVgre1v40PDmvd1AU1dfzylZjJVaTwkR-0-0c8166b286cdcdee6c17a128073921ae)
图1-5 Visual Studio 2019编译选项
- Debug:调试版,编译器默认不对生成的汇编代码做优化。
- Release:发布版,编译器默认对生成的汇编代码做优化,可设置为01优化(最小文件优化)或02优化(最快执行速度优化)。如无设置,Release版默认使用02优化选项。本书如无特别说明,Release版使用02优化。优化设置如图1-6所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/022-1.jpg?sign=1739350171-f1ZAtUhVfBhTxItz6yyT5VuUgmbmqzLT-0-de88f2487dcf5fd9f513b89dc0f2d82a)
图1-6 Visual Studio 2019优化选项
- x86:编译32位应用程序。
- x64:编译64位应用程序。
3. 使用命令行编译
VS也提供命令行工具编译程序,使用命令行可以很方便地编译没有VS项目文件(.sln)的程序,例如一些开源源码。VS命令行工具界面如图1-7所示,说明如下。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/022-2.jpg?sign=1739350171-xJGVAMuZuE3RAcBCqXbWSVBrI9dzD69v-0-4e2aa31780f2adfbd6a2ac115a7d0f1f)
图1-7 Visual Studio 2019命令行工具
- x64 Native Tools Command Prompt for VS 2019:编译64位程序命令行。
- x64_x86 Cross Tools Command Prompt for VS 2019:编译兼容32位程序命令行。
- x86 Native Tools Command Prompt for VS 2019:编译32位程序命令行。
- x86_x64 Cross Tools Command Prompt for VS 2019:编译兼容64位程序命令行。
使用命令编译32位Debug/Release程序,运行命令行x86 Native Tools Command Prompt for VS 2019,输入以下命令编译程序。
cd <源码目录> cl /O2 /Fe:Hello.exe Hello.cpp
/02表示编译Release版,如果不写/02则默认为Debug版。/Fe指定生成的可执行文件名称。编译过程如图1-8所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/023-1.jpg?sign=1739350171-ObwbqPjKBZBXBKxCTGXK0RkCY9JO20L8-0-e01ff0dd3bb83b8699643d1edb3da3e1)
图1-8 Visual Studio 2019命令行编译32位程序
使用命令编译64位Debug/Release程序,运行命令行x64 Native Tools Command Prompt for VS 2019,输入以下命令编译程序。
cd <源码目录> cl /O2 /Fe:Hello.exe Hello.cpp
编译过程如图1-9所示。
![](https://epubservercos.yuewen.com/216E0A/21191463201767206/epubprivate/OEBPS/Images/023-2.jpg?sign=1739350171-327YXuQPP8foSaCjHwlBCs2zUjknUPvn-0-7c4d797a973293a86c1805c3ca32db36)
图1-9 Visual Studio 2019命令行编译64位程序