출처 : http://www.unibia.com/unibianet/systems-networking/bypassing-virtual-machine-detection-vmware-workstation

혹시라도 모를 나중에 원본 출처의 글이 삭제 되는 것에 대비해 백업을 해 둔다.




VMWare Workstation(VMWare Player포함)에서 가상머신 탐지 기능 무력화 시키기

 Vmware로 프로그램을 돌리다보면 한번 씩 가상 환경에서 실행을 거부하는 몇몇 짜증나는 프로그램을 봤을 것이다. 보통 이런 경우 악성프로그램이 가장 주된 범인이지만, 몇몇의 합법적인 프로그램들 역시 가상 환경인 것을 탐지하면 설치가 안되게 하기도 한다. 다행히 VMWare는 소프트웨어가 가상머신을 탐지하지 못하겠끔 하는 해결책을 만들었다. 

 만약 여러분이 악성프로그램을 가지고 실험하고 있지 않다면, 가상머신의 탐지를 못하게끔 하는 방법을 생각하기 전에 당신이 바보로 만들고자 하는 소프트웨어는 사용 허가 계약에 당신이 그렇게 못하도록 해 놨다는 것을 명심해야 한다. 때로는 쿠폰을 인쇄하는 소프트웨어(coupon printing software)는 누가봐도 명백한 이유로 가상 환경에서 설치하지 못하게 명시해 놨을 것이다.


필요한 것들

  • VMware Workstation (7.1.4버전으로 테스트)
  • 역자의 경우 VMware Player 5.0버전으로 테스트 해 봤음.
  • Microsoft Windows (XP Professional SP3으로 테스트)
  • 이 도움말은 VMWare Workstation을 사용하는 것으로 간주한다.

깨끗한 순정 Windows XP 설치

여기 해결책은 여러분이 새로운 가상머신을 생성하였을 때 제일 효과적이다. 우리 역시 처음부터 VMWare의 해결책과 함께 우리의 새로운 가상머신을 생성할 것이다. 

먼저, VMWare를 시작한다, Windows CD(혹은 ISO 이미지)를 준비한다, 그리고 나서 "custom 가상 머신"을 생성한다.  생성도중 무언가 물어볼 때 쉬운설치는 이용하지 않는다, 대신에 직접 설치하는 방법을 선택한다.

방금 만든 가상머신을 저장한다, 하지만 아직 부팅하지 않는다. VMware 프로그램 자체를 종료하고 가상 머신의 VMX 설정 파일을 메모장 같은 걸로 연다.


그리고 다음 내용들을 끝에 추가한다.

isolation.tools.getPtrLocation.disable = "TRUE"
isolation.tools.setPtrLocation.disable = "TRUE"
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"

수정된 내용을 저장하고 닫는다. 그런 다음 가상머신을 VMWare에서 다시 오픈하고 Windows CD나 ISO 이미지로 부팅한다. 설치는 당신이 알아서 설치하도록 한다.

윈도 설치가 끝나면, 가상 머신의 바탕화면으로 로그인해서 들어간다. 하지만, VMWare tools는 아직 설치하지 않는다. 여러분이 설치를 하려 해도 설치되지 않는다. 우리가 위에서 VMX 설정 파일에 추가한 옵션들 때문에 가상머신같지 않을 것이다.


한가지 더 해야한다

위에서 우리가 VMX 설정 파일에 추가했던 옵션들은 주소공간, 프로그램 카운터 그리고 메모리를 사용하여 몇개의 복잡한 기술들을 사용해서 가상 환경 탐지가 안되게 하는 것이다. 이는 아주 상당히 기술적이지만 그 일을 해냈다. 그리고 대부분의 소프트웨어는 아마도 이 지금쯤 바보가 되었을 것이다. 하지만 영리하지 않지만 오히려 간단한 바보가 된 프로그램를 설치할 한가지 기술이 있다. (원문 참고 : However there is one technique which is rather simple yet clever that the above won't prevent.)

  한 프로그램이 디스크 컨트롤러들의 이름을 보고있었다 그리고 가상 디스크 컨트롤러와 닮은 어떤 것을 찾고 있었다.(원문 참고 One piece of software was looking at the names of the disk controllers and searching for anything that resembles a virtual disk controller.)  그 프로그램은 설치하다가 이 찾는(check) 작업만을 하고 있었다. 이런 간단한 체킹 작업을 사용하는 프로그램은 최초 설치 작업중에 단 한번만 할 것이다라고 말하는 것이 안전하다.(역자 원문 참고 :  It's safe to say that any program using a check this simple will probably do it only once during initial installation.)  하지만, 인류의 악을 과소평가 하지 마라.

이 귀찮은 작업을 끝마치기 위해서는, regedit를 실행하고 다음 레지스트리 키로 이동한다.

HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum


가상 디스크 컨트롤러 이름이 보이는 항목에 마우스를 위치 시키고 더블 클릭으로 연다. 그 값을 전체를 복사해서 어딘가(가상머신의 메모장 같은 곳에)에 붙여넣기한다. 그런 다음 그 값을 편집해서 Vmware 와 Virtual이란 글자들을 지운다.  그리고 저장하고 그 설치 프로그램을 실행한다.


그 설치 프로그램은 마치 가상머신이 아닌 PC에서 돌아가는 것 처럼 설치 될 것이다. 설치가 다 되면, 레지스트리로 가서 방금 수정했던 값을 원상 복구시킨다.(그냥 냅 두면 윈도가 부팅되지 않을 수도 있다.)

여러분의 프로그램이 여전히 잘 도는지 테스트 해 보라. 만약에 프로그램이 안돈다면 이 프로그램은 이 기술(레지스트리 변경 기술)이 안 통하는 것이다. 이런 경우라면 여러분은 앞으로도 계속 위에서 처럼 이름을 바꿔서 써야할 것이다. 그런 작업은 현재 이 도움말 파일의 범위을 벗어난다.


VMware Tools 설치

VMWare Tools를 설치하려고 하는 이 시점에서 만약 여러분의 그 악질 프로그램이 가상 머신에서 아무 문제 없이 잘 돌아간다면, VMX 설정 파일에 추가했던 그 옵션들을 제거하는게 안전하다.

가상 머신을 종료하고 VMWare 프로그램 자체를 닫아라. 그리고 VMX 파일에서 추가했던 내용들을 제거하라. 그런 다음 가상 머신을 부팅하고 VMWare tools를 설치한다. 

마지막으로 당신의 프로그램을 한번 더 테스트 해본다. 만약 그 프로그램이 실행된다면 성공적으로 가상환경 탐지 기능을 무력화 한 것이다. 만약 실행 안되면, VMWare tools를 제거하고 VMX파일에 그 옵션들을 영원히 추가해야 할 것이다.


+ Recent posts