난 정말 최고야 멋있어
HEAVEN'S GATE 본문
32비트 프로그램이 64비트에서 돌아갈때... 사실 WOW64를 통해 돌아간다는건 모두 알고있을거에요
좀 쉽게 말하자면 32비트 에뮬레이터로 32비트 프로그램을 실행한다는 소리죠 (에뮬레이터는 64비트)
이때 에뮬레이터는 64비트라는 점을 이용해 32비트에서 64비트의 코드를 돌리는 기술이 헤븐즈 게이트입니다
근데 그러면 어떻게 에뮬레이터에서 벗어날까요?
그러기 위해서는 어떻게 해서 x86 에뮬레이터 영역과 64비트 프로세스 영역이 구분되는지 알아야하는데요
코드 세그먼트 23 인 경우에는 WOW64 영역으로 취급되고요
코드 세그먼트 33 인 경우에는 64비트 프로세스 영역으로 취급됩니다
**참고로 TEB의 0xC0 부근에 64비트 프로세스로 점프하는 코드가 있습니다 (fs 읍읍..)