1. MSVC 설치
노트북 용량이 제한적이고, Visual Studio IDE는 주로 프로젝트 단위 작업에 초점이 맞춰져 있어 설치를 생략하기로 했다
https://aka.ms/vs/17/release/vs_BuildTools.exe
위의 링크로 Visual Studio 2022에 사용되는 MSVC와 같은 빌드 도구만을 다운로드할 수 있다
링크가 의심된다면
https://visualstudio.microsoft.com/ko/downloads/#build-tools-for-visual-studio-2022
Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치
Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.
visualstudio.microsoft.com
여기서 모든 다운로드 목록에서 Build Tools 쪽을 확인하면 된다
2. 사용법
MSVC Build Tools는 GUI를 제공하지 않으므로, 명령줄(Command Line)에서 C++ 파일을 빌드해야 한다
VSCode와 같은 편집기를 사용해도 되며, g++로 컴파일하듯 cl 명령어를 이용해 파일을 빌드할 수 있다
# gcc
$ g++ {filenema}
# msvc
$ cl {filename}
이 책에서 다루는 실습 예제가 오래된 환경을 기준으로 작성되어 32비트로 컴파일해야 한다는 점이 문제가 있다
32bit 환경으로 바꾸는데에는 2가지 방법이 있다
1. x86 Native Tools Command Prompt
x86 Native Tools Command Prompt for VS2022를 찾아 열면 컴파일 환경이 32bit 호스트 및 타깃으로 설정된 명령 프롬프트가 열리게 되는데 그냥 여기서 컴파일하면 된다
2. VsDevCmd.bat 실행 (Visual Studio 2022 설치 필요)
vscode 같은 기존의 명령 프롬프트에서 새로 빌드 환경을 설정하는 방식이다
C:\Program Files\Microsoft Visual Studio\2022\<edition>
위의 경로를 찾아 탐색하여 Common7\Tools 하위 디렉토리로 가서 VsDevCmd.bat 명령파일을 찾아 별다른 매개변수 없이 실행하면 기본적으로 32bit(x86) 네이티브 툴로 환경이 설정된다
이는 매번 터미널을 새로 열 때마다 실행해주어야 하며 귀찮다면 settings.json 을 통해 터미널 열 때마다 실행하도록 할 수 있다
필자는 위의 1번 방법을 사용할 것이기에 settings.json 을 설정하는 방법에 대해서는 적지 않았다
https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170
Use the Microsoft C++ toolset from the command line
Use the Microsoft C++ (MSVC) compiler toolset from the command line outside of the Visual Studio IDE.
learn.microsoft.com
3. Dbg 설치
윈도 dbg 프로그램은 대표적으로 3가지가 존재한다
- OllyDbg
- 64 xDbg / 32 xDbg
- WinDbg
혹시 몰라 그냥 전부 설치해 놓고 일단은 하나만 선택하여 사용하기로 했다
OllyDbg의 경우에는 64bit 제작 중에 개발이 중단되어 더 이상 업데이트가 올라오지 않고 있다.
WinDbg는 학습곡선이 가파르기 때문에 초심자가 접근하기 어렵다고 한다
그렇기에 GUI 화면으로 학습곡선이 완만하며 책에 나오는 OllyDbg의 정신을 이었으며 가독성에도 좋은 64 xDbg / 32 xDbg를 사용하기로 했다
P.S.
참고로, 실습 예제는 이미 컴파일된. exe 파일로 제공되기 때문에, 컴파일러를 직접 사용할 일은 많지 않을 것 같다
"리버싱 핵심 원리" 소스 코드와 실습 예제 파일입니다.
(2021.07.08) github.com 에도 제 계정을 생성하여 소스코드 및 실습예제를 올렸습니다. github 에 익숙하신 분들께서는 이곳을 이용하시면 됩니다. https://github.com/reversecore/book 1. 소스 코드 (ver 1.0.2) * 암
reversecore.com
위의 예제들로 하면 책에 나와있는 주소값과도 일치하니 공부할 때 편하게 할 수 있다