CMST 설치 파일에서 추출

2022-02-02

들어가며

주기적으로 메이플스토리 서버별 클라이언트를 아카이빙하고 있다. 업데이트 날짜는 주로 @dskytian 에서 얻는다.

보통 patch 파일이 제공되기에 이를 통해 직접 패치를 수행하나, 몇 가지 예외가 있다.

연휴 마지막 날을 맞아 CMST 177#을 다운로드받으려고 들어갔더니 파일 링크# URL에 '3nd'가 있었다. '3rd'가 아닌 것은 차치하고, 중간에 hotfix가 있었다는 의미이므로 2nd도 함께 다운로드받았다. 제일 처음 릴리즈도 depth 하나 올라가면 되긴 한데, 일부 파일만 있었다.

이렇게 두 벌을 다운로드하고 보니 설치를 진행하는 것이 귀찮아졌다. CMST는 빈도가 잦아 직접 설치했지만, TMST때에는 레지스트리 등 오염을 방지하기 위해 Windows Sandbox 안에서 매핑된 폴더#에 설치했다. 제대로 측정해본 것은 아니지만 시간이 더 오래 걸리는 것 같았고, 이참에 uninstaller 등 없이 더 깨끗하고 빨리할 방법을 살펴보기로 했다.

2022-04-08 추가

분할 압축된 ZIP

그림 1 CMST 설치 파일

DataXXXYY.cab를 DataXXX.zYY로 바꾸고 열어보면 분할 압축된 ZIP 파일임을 알 수 있다.

그림 2 Data177.zip

다만 암호가 걸려 있다. 반디집 프로페셔널을 사용해서 압축 파일 암호 복구 기능을 사용할 수는 있으나 암호의 특성을 전혀 모르므로 굳이 시도하지는 않았다.

NSIS Installer 열기

UniExtract나 7z로 열어보고 모든 DLL 파일들을 살펴봐도 암호의 흔적은 보이지 않는다. 분명 NSIS script를 찾는 방법이 있었던 것 같은데 기록이 없어 새로 찾아봤다.

페이지를 참고하여 7z 최대 1505 버전을 사용해야 함#을 알았다. Installer로 배포하는데# 설치하긴 싫기에 다시 7z로 열어서 압축만 풀어주고 7zFM.exe를 연다. 이제 exe를 열어보면 [NSIS].nsi가 보인다.

그림 3 7z 1505로 [NSIS].nsi 파일 확인

NSIS Script 읽기

이제 그냥 눈으로 읽는다. VS Code에 역시나 .nsi용 extension이 있어서 편하게 읽을 수 있었다.

그림 4 NSIS Script에서 암호 발견

찾았다. mxd@2011

비교

비교해보니 wz는 모두 동일했고, exe조차도 동일한데 단지 SDO 폴더만 달랐다. 그것도 제공해준 SDO.rar 파일 내용으로 덮어씌운 것이 끝이었다. "스토리지는 싸다"는 생각을 비슷하게 하나 보다.

나가며

client에서 열 수 있는 것은 결국 모두 취약하다는 것을 절대 잊지 말자.

+ 이 정도면 꽤 간단하게 찾을 수 있는 암호였는데 그동안 왜 매번 설치했나 싶다.

돌아가기