minhui study

WOW64 file system redirection 본문

Hacking/Reversing

WOW64 file system redirection

minhui 2020. 9. 17. 04:51

WOW64란?

64bit 플랫폼에서도 기존에 32bit용으로 개발된 어플리케이션이 실행될 수 있도록 하는 기능

WoW'Windows on Windows'를 의미하는 것으로 실제 64bit Windows 상에서 또 다른 32bit Window가 실행된다는 의미로 일종의 가상 머신(Virtual Machine) 환경을 제공한다고 이해하면 된다.

 

 

WOW64 file system redirection

32bit 환경에서 만든 프로그램을 64bit 환경에서 실행시킬 때 32bit 프로그램이 system32폴더로 파일을 복사하게 되면 Windows는 자동으로 SysWOW64로 redirect하여 파일을 복사하게 된다. 

그럼 system32폴더SysWOW64폴더는 무엇일까?

 

만약 64비트 윈도우즈에서 32비트 프로세스에서 c:\windows\System32 폴더에 뭔가를 쓰게 되면 실질적으로는 c:\windows\SysWOW64 폴더에 써지게 된다. 즉, 내부적으로 system32에서 SysWOW64로 리다이렉트가 되는 것이다.

즉, 64비트 운영체제에서 32비트 프로세스가 호환되도록 하기 위해 32bit 응용 프로그램이 System32폴더에 액세스 하려고 하면 액세스가 SysWOW64폴더로 리다이렉션되는 것이다. 그러므로 SysWOW64 폴더는 32bit 프로세스를 위한 폴더라고 할 수 있다.

 

실습을 통해 확인해보자

다음을 보면 HxD와 CFF Explorer는 64bit이고 PEView는 32bit인 것을 알 수 있다.

System32안에 들어있는 64bit notepad.exe와 WOWSystem64안에 들어있는 32bit notepad.exe를 각각의 프로그램에 실행시켜 보자

 

64bit - CFF Explorer와 HxD

CFF Exploere VIII

 

HxD

 

위에 보다시피  HxD와 CFF Explorer는 32bit, 64bit notepad 둘다 잘 인식하고 있는 것을 알 수 있다.

32bit notepad의 offset 값은 0xF0, 64bit notepad의 offset값은 0xF8로 서로 다른 값을 가지고 있는 것도 확인할 수 있다.

 

32bit - PEView

PEView

반면에 32bit인 PEView에서는 64bit notepad.exe가 제대로 인식되지 못하고 system32에서 SysWOW64로 리다이렉션 되었기 때문에 64bit notepad.exe임에도 불구하고 32bit notepad.exe와 offset값이 같은 것을 알 수 있다.

 

정리를 해보자면 WOW64 File System Redirection에 의해 system32에서 SysWOW64로 리다이렉션되었기 때문에 같은 실행파일(64bit notepad.exe)인데도 64bit프로그램에서 실행하느냐 32bit프로그램에서 실행하려고 하느냐에 따라 offset 값이 달라진 것이다. 만약 32bit 프로세스가 System32 폴더에 접근하고 싶다면 Wow64EnableWow64FsRedirection API를 사용해 리다이렉트 기능을 끄고 강제로 접근하면된다.


'Hacking > Reversing' 카테고리의 다른 글

Wargame 'Dreamhack' rev-4  (0) 2020.10.01
Wargame 'Dreamhack' rev-3  (0) 2020.09.19
[WEEK 2]어셈블리어 C언어로 변환하기  (0) 2020.09.17
[WEEK1] 어셈블리어 C언어로 변환하기  (0) 2020.09.13
Wargame 'Dreamhack' rev-0  (0) 2020.09.13
Comments