본문 바로가기
코드/c/c++

64비트 환경에서 32비트 프로세스에서 64비트 경로 얻기

by WeZZ 2014. 1. 28.

 

 

Wow64EnableWow64FsRedirection()

 

 

실제 64비트 윈도우에서 동작하는 32비트 응용 프로그램을 개발하다 보면 앞서 설명한 64비트 윈도우에서 제공하는 파일시스템 접근경로 변경 방식이 문제가 될 경우가 있다. 예를 들어 필자가 개발하는 안티바이러스 프로그램의 경우 악성코드가 시스템 디렉토리에 감염되어 치료를 시도하는데 원하는 경로가 아닌 접근경로 변경이 된 SysWOW64 밑을 접근하게 된다면 원하는 파일에 접근을 할 수 없기 때문에 문제가 된다.

즉, 전체적인 파일시스템을 접근경로 변경이 되지 않는 일반적인 상태로 접근하고 싶을 때는 Wow64EnableWow64FsRedirection() 함수를 사용해서 파일시스템 접근경로 변경을 끄면 된다. <리스트 1>을 참조하면, 32비트 프로세스에서 파일시스템 접근경로 변경을 끄고 notepad.exe를 접근하면 32비트 시스템 디렉토리에 있는 notepad.exe가 아닌 64비트 시스템 디렉토리에 있는 notepad.exe를 접근하게 된다.


참고 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039134610