반응형

 

{배경}

 

제가 처음 소프트웨어 리버스 엔지니어링을 접한게 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 플랫폼을 모두 지원합니다.

 

www.virtualbox.org/

자신의 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)

 

VirtualBox 에서 MS Image 를 이용해 로그인한 화면
IDA Free 의 장점인 Graph View : 코드 흐름을 직관적으로 표시합니다
IDA Free를 이용해 HelloWorld.exe (32bit) 를 디버깅하는 화면

 

멋지군요!  ^^

 

위 환경을 좀 더 연구해서 최적화시키면 재밌을것 같네요.

 

 

반응형

+ Recent posts