리버싱 환경의 변화 : 가상머신(Virtual Machine), 디버거(Debugger)
{배경}
제가 처음 소프트웨어 리버스 엔지니어링을 접한게 2005년 입니다.
테스트 PC에 Windows XP (32bit) 설치해서 사용하던 시절이었고요, 디버거로는 ollydbg 를 사용하였지요.
[리버싱 핵심 원리] 책은 Windows 7 (32bit) 환경에서 ollydbg2.0 으로 작업하였습니다.
시대는 빠르게 변화하여 Windows 10 (64bit) 이 완전히 정착하였고, 가상머신(Virtual Machine)이 엄청나게 발전하여 개발 및 리버싱 환경에 깊숙히 자리잡고 있습니다.
이제 과거의 리버싱 환경을 새롭게 업데이트 해야 할 때가 온 것이지요.
{해결방법}
다음에 소개하는 방법으로 각자 새로운 시대에 맞는 리버싱 환경을 꾸며 보시기 바랍니다.
#1. 가상머신 (Virtual Machine)
디버깅을 할때 리얼 PC 환경에서 해도 좋지만, 가상머신에서 하면 큰 장점이 있습니다.
- 악성코드 분석 시 감염 걱정이 없음
- Snapshot 기능으로 언제든지 원하는 시점으로 되돌아 갈 수 있음
무료 가상머신에서 제가 추천하는 제품은 VirtualBox 입니다. (유료 제품으로는 VMWare 추천합니다)
Snapshot 을 지원하며 사용이 편리하며 Windows/Mac/Linux 플랫폼을 모두 지원합니다.
자신의 OS 환경에 맞는 버전을 다운받아 설치하시면 됩니다.
#2. OS Image
이제 가상머신에 올릴 OS 를 선택해야죠.
고민없이 당연히 Windows 10 을 선택하면 되는데요.
Microsoft 에서는 무료로 Windows OS 의 가상머신 이미지를 제공하고 있으므로 이것을 이용하겠습니다.
developer.microsoft.com/en-us/microsoft-edge/tools/vms/
1) Virtual Machines 항목에서 "MSEdge on Win10 (x64) Stable 1809" 를 선택하시고,
2) Choose a VM platform 항목에서 "VirtualBox" 를 선택하신 후
3) [Download .zip >] 버튼을 선택하시면 됩니다.
※ 참고 : Windows 10 VM 로그인 암호는 Passw0rd! 입니다.
#3. 디버거(Debugger)
가상머신과 Windows 10 이미지를 얻었으므로 이제 디버거만 다운로드 받으면 됩니다.
여태까지 제가 사용하던 디버거는 ollydbg 였습니다. 저에게는 정말로 최고의 디버거였지요.
하지만 아쉽게도 ollydbg 는 더이상 업데이트 되지 않아 64bit 로 디자인된 PE+(PE64) 파일의 디버깅을 지원하지 않습니다.
그래서 무료 IDA Free 제품을 사용합니다.
(프로페셔널 리버스 엔지니어용 IDA Pro 제품에서 몇 가지 기능을 제한한 아마추어용 무료 제품으로 보시면 됩니다)
https://www.hex-rays.com/ida-free/
사실 프로들의 세계에서는 IDA Pro 를 많이 사용합니다.
특히 Decompiler 기능이 정말 막강하거든요.
그만큼 비싸지만 빠른 기능 파악이 필요할 때는 그 값어치를 톡톡히 합니다.
IDA Free 는 ollydbg2.0 과 비교해도 손색이 없으며, 64-bit 어플리케이션 분석이 가능하지요.
- Analyze both 32-bit and 64-bit applications
- Local x86/x64 debugger included
- Support x86/x64 processors
- Save your analysis results
- Perpetual license
위 3 개를 모두 조합하여 HelloWorld.exe 를 디버깅한 모습은 다음과 같습니다.
(VirtualBox + Windows 10 Image + IDA Free)
멋지군요! ^^
위 환경을 좀 더 연구해서 최적화시키면 재밌을것 같네요.