C++反汇编与逆向分析技术揭秘(第2版)
上QQ阅读APP看书,第一时间看更新

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所示。

图1-1 Visual Studio 2019下载页面

下载需要安装的版本,之后运行Visual Studio Installer,选择需要安装的组件,如图1-2所示。

图1-2 Visual Studio 2019安装界面

2. 编译

启动Visual Studio 2019,点击“配置新项目”,选择应用程序类型,输入项目名称、位置,之后单击“创建”,如图1-3所示。

图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所示。

图1-4 Visual Studio 2019反汇编调试

VS编译选项设置如图1-5所示。

图1-5 Visual Studio 2019编译选项

  • Debug:调试版,编译器默认不对生成的汇编代码做优化。
  • Release:发布版,编译器默认对生成的汇编代码做优化,可设置为01优化(最小文件优化)或02优化(最快执行速度优化)。如无设置,Release版默认使用02优化选项。本书如无特别说明,Release版使用02优化。优化设置如图1-6所示。

图1-6 Visual Studio 2019优化选项

  • x86:编译32位应用程序。
  • x64:编译64位应用程序。

3. 使用命令行编译

VS也提供命令行工具编译程序,使用命令行可以很方便地编译没有VS项目文件(.sln)的程序,例如一些开源源码。VS命令行工具界面如图1-7所示,说明如下。

图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所示。

图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所示。

图1-9 Visual Studio 2019命令行编译64位程序