반응형

 

Windows에서 notepad.exe를 복붙(Ctrl + c, Ctrl+v) 또는 복제하여 notepad_copy.exe를 생성하고 notepad_copy.exe를 실행하면 실행되지 않는다.

 

복붙 또는 복제한 notepad_copy.exe를 실행하고 싶다면 System32 폴더 하위에 있는 시스템 언어 폴더 ko-KR 또는 en-US와 같은 폴더에 notepad_copy.exe와 동일한 이름의 MUI 리소스 파일인  notepad_copy.exe.mui를 넣어두면 실행할 수 있다.

 


 

 

Windows에서는 C:\Windows\System32 폴더에 OS의 커널과 관련된 부분들이 많기 때문에 보안이 철저하다.

C:\Windows\System32 폴더는 읽기 전용으로 권한이 설정되어 있고, 보안 정책 역시 TrustedInstaller를 제외한 일반 사용자 및 관리자 계정은 쓰기 권한이 없게 설정되어 있어서 C:\Windows\System32 내에 존재하는 파일들을 수정하고 싶을 때는 해당 폴더의 권한을 수정해야 한다.

 

C:\Windows\System32 폴더 하위에 있는 파일들을 작업하고 싶을 때는 위에서 말한 것과 같이 해당 폴더의 권한을 수정해야 하지만 또 다른 방법으로는 복붙(Ctrl+c, Ctrl+v) 또는 복제하는 방법이 있다.

 

다만, C:\Windows\System32 폴더 하위의 파일들을 복붙 또는 복제하는 방법으로 생성은 되지만 실행이 되지 않는다.

 

시스템 파일이 외부의 특정 리소스를 가져오는 경우에(notepad.exe -> notepad.exe.mui) 파일의 이름이 경로에 사용되기 때문에 실행되지 않는다.

 

이는 System32 폴더 하위에 있는 파일들 대부분의 문제이다.

 


Windows Vista 이후 버전에서 notepad.exe와 같은 C:\\Windows\System32 폴더 하위에 있는 시스템 파일들을 복붙 또는 복제하여 생성한 뒤 실행하고자 할 때는 시스템 파일 이름과 동일한 .mui 리소스를 시스템 언어 폴더 하위에 넣어줘야 한다.

(ko-KR 폴더는 notepad.exe 파일과 동일한 경로 안에 존재하면 되고, ko-KR 폴더 안에는 notepad.exe와 동일한 이름을 가진 .mui 파일이 있어야 한다.)

 

필자의 환경에서 시스템 언어는 한국어로 설정되어 있기 때문에 C:\Windows\System32\ko-KR 폴더 하위에 notepad.exe.mui 라는 파일이 존재하고 이 파일이 ko-KR 폴더 하위에 들어있기 때문에 notepad.exe를 실행할 수 있는 것이다.

 

Windows Vista 이후 버전에서는 Windows 이미지에 둘 이상의 언어를 포함할 수 있도록 이진 리소스와 언어 종속 리소스를 분리했다고 한다.

https://docs.microsoft.com/ko-kr/windows/win32/intl/mui-fundamental-concepts-explained?redirectedfrom=MSDN 

 

ko-KR과 같은 언어 폴더에는 notepad.exe와 같은 이름을 가진 .mui 파일이 포함되어 있고, 이 .mui 파일은 dll을 포함하여 리소스를 제공하는 모든 파일에 대해 하나씩 존재하는데 이 .mui 파일들은 리소스 폴더만 포함되고 있는 그대로 프로세스의 주소 공간에 고드되는 매우 기본적인 PE 파일이다.

 

이러한 파일은 이름으로 기본 파일에 연결된다.

 

 

메모장의 이름을 notepad에서 notepad_copy로 바꾸고, MUI 파일의 이름도 notepad에서 notepad_copy로 바꿔줌으로써 이름을 동일하게 맞춰주면 notepad_copy.exe는 잘 실행된다.

 


동일한 이름의 .mui 파일을 시스템 언어 폴더에 넣어도 실행되지 않는 경우

 

최근 Windows는 리소스 파일로 .mui 리소스 파일 이외에 C:\Windows\SystemResources 폴더에 존재하는 .mun 파일을 사용한다고 한다.

 

즉, notepad_copy.exe를 생성하고 notepad_copy.exe와 동일한 위치에 있는 시스템 언어 폴더 ko-KR 또는 en-US와 같은 폴더에 notepad_copy.exe.mui를 생성해도 notead_copy.exe가 실행되지 않는다면, C:\Windows\SystemResources 폴더 하위에 notepad_copy.exe.mun 파일을 생성하면 notepad_copy.exe가 실행된다는 것이다.

 

과정

1. C:\Windows\System32 폴더 내에서 notepad.exe를 복붙하여 notepad_copy.exe 생성

2. C:\Windows\SystemResources 폴더의 읽기 속성을 해제

3. C:\Windows\SystemResources 폴더의 디렉토리의 소유자를 TrustedInstaller에서 사용자 계정(Users)으로 바꾸고, 쓰기 권한을 준다.

4. C:\Windows\SystemResources 폴더 notepad.exe.mun 파일을 복제하여 notepad_copy.exe.mun 파일을 생성한다.

5. C:\Windows\System32 폴더 하위에 있는 notepad_copy.exe를 실행한다.


참고 URL

 

https://ntcore.com/?cat=7 

 

https://superuser.com/questions/279031/copy-notepad-exe-from-system-folder-to-desktop-and-run-it

 

https://chp747.tistory.com/401

 

 

반응형

+ Recent posts