카테고리 없음

Windows 기본 앱 건드리기

ch4rli3kop 2021. 10. 8. 01:05
반응형

Windows 기본 앱 건드리기

Intro

Windows 기본 앱(mspaint.exe)을 퍼징하기 위해서 바이너리를 패치하려 하는데, 패치한 바이너리가 실행이 안된다.

내가 시도하던 방법은 두 가지였는데, 다음과 같다.

  1. C:\Windows\System32 디렉토리에 존재하는 mspaint.exe 파일을 복사하여 만든 mspaint2.exe로 퍼징하기
  2. C:\Windows\System32에 존재하는 mspaint.exe 파일을 수정하기

결과적으로 1번으로 진행한 것이 성공했고, 그에 대한 내용을 정리하려고 한다.

Trouble

Windows에서 기본적으로 C:\Windows\System32 디렉토리는 OS의 커널과 관련된 부분들이 많기 때문에 엄격하게 관리된다. C:\Windows\System32 디렉토리의 경우 읽기 전용으로 설정되어 있으며, 보안정책 역시 TrustedInstaller를 제외한 일반 사용자 및 관리자 계정은 쓰기 권한이 없다. 따라서 C:\Windows\System32 내에 존재하는 파일을 수정하기 위해서는 해당 디렉토리의 권한을 수정해야 한다.

나는 1번 방법으로 진행했기 때문에, C:\Windows\System32 의 보안 정책을 수정할 필요는 없었다. 다만 2번 방법에도 문제를 겪었던 것이, System32 디렉토리 내에 존재하는 파일의 복사본을 만드는 것은 가능하지만, 해당 파일을 실행할 수는 없었다. 이는 mspaint.exe에만 해당하는 문제가 아니라 System32 디렉토리에 존재하는 대부분의 응용프로그램들 모두에 해당하는 문제였다.

그에 대한 원인으로써 나는 총 두 가지의 이유를 생각했고, 다음과 같다.

  • 응용프로그램이 실행하면서 특정 레지스트리 키를 사용하는 경우
  • 응용프로그램이 실행하면서 특정 리소스를 가져오는 경우

위 두 가지의 경우 모두 전제조건이 있는데, "파일의 이름이 경로에 사용된다"라는 점이다. 그게 아니라면 현 상황을 설명하기가 힘들 것 같다.

처음에 그래서 everything 프로그램을 사용하여 이름에 mspaint가 포함된 리소스 파일을 똑같이 복사하여 mspaint2 를 이름으로 하는 리소스를 생성했다. 윈도우 앱들이 .mui 확장자의 파일을 리소스로 사용한다고 알고 있었기 때문에, System32 디렉토리 내부에 존재하는 ko-KR\mspaint2.exe.muien-US\mspaint2.exe.mui를 똑같이 만들어줬는데, 여전히 실행되지 않았다.

방황하던 와중 최근 Windows 는 리소스파일로 C:\Windows\SystemResources 디렉토리에 존재하는 .mun 확장자의 파일을 사용한다는 사실을 전해들었다. (리버싱오픈채팅방은 신이다.) 결국 C:\Windows\SystemResources\mspaint2.exe.mun 파일을 생성하니 mspaint2.exe가 원본과 마찬가지로 실행가능하게 되었다.

Solution

mspaint2.exe를 실행시킬 수 있었던 과정은 다음과 같다.

  1. C:\Windows\System32 디렉토리 내에 mspaint.exe를 복사하여 mspaint2.exe를 생성한다.
  2. C:\Windows\SystemResources 디렉토리의 읽기 속성을 해제한다.
  3. C:\Windows\SystemResources 디렉토리의 소유자를 유저로 변경하고, 유저의 권한에 쓰기 권한을 준다.
  4. C:\Windows\SystemResources 디렉토리에 mspaint.exe.mun 파일을 복제하여 mspaint2.exe.mun 파일을 생성한다.
  5. C:\Windows\System32\mspaint2.exe를 실행한다.

Details

우선 C:\Windows\SystemResources 디렉토리의 속성에 들어가서 읽기 전용을 해제한다.

그리고 보안 탭의 고급 설정으로 들어가면 다음과 같은 창을 볼 수 있는데, 여기서 소유자를 유저로 변경하고 밑의 유저를 더블클릭한다.

유저의 권한에 쓰기를 추가해준다.

이제 해당 C:\Windows\SystemResources 디렉토리에 파일 추가가 가능하다.

리소스를 복사해준다.

mspaint2.exe를 실행한다.

반응형