개요.
1년 전 나는 "멜론의 DCF파일을 MP3로 변환했다"라는 어그로 성의 글을 올렸다. 파일 없이 동영상뿐인 인증에도 "거짓말이다."라는 뉘앙스의 폄훼하는 악플은 달리지 않았다. 것보다 마음 아픈 무관심 속에 잊혀가는 알고있어도 쓸데없는 기술로 자리매김하고 있었다.
그러던 중!
최근에 많은 업체가 버그바운티를 함으로서, 해커를 배타적으로만 바라보지 않는 것 같고,
많은 사람이 자기가 알고 있는 기술을 하나둘씩 공개하는 것을 보고,
나도 오픈소스 공유정신에 따라 하나 까기로 했다!
그래서 나는 오랜만에 DCF파일을 재생시키기 위해 무엇을 했을까?
뭘 하긴,,, 결제를 했지...
그래도 공식적으로 구매한 DCF에 대해 권리를 행사해야하므로! DCF파일을 다운로드도 할 수 있고, 스트리밍도 당분간 할 수 있는 프리클럽으로 결제했다. 절대 카카오멜론에 대한 광고는 아니다.
이글을 쓰기 위해 15,900원의 멜론 이용권을 결제했으므로 이 글의 가치는 최소 15,900원.
글쓴이의 지갑을 향해 감사를 느끼며 읽었으면 좋겠다.
그렇게 멜론플레이어를 설치하고 실행하면 위와 같은 화면을 볼 수 있다. 멜론플레이어의 UI만큼이나 DCF파일의 구조도 1년 전과 바뀌지 않았으므로 재분석을 진행하지는 않았다.
일단 멜론플레이어의 메모리에 우리가 필요한 키가 저장되야하므로 어떤 노래던지 한곡 재생해주자.
나는 자우림의 샤이닝으로 선택했다. 자우림의 윤아님 애절한 노래 고수..
여기서 필요한 프로그램인 치트엔진은 지정한 프로세스로부터 원하는 문자열이나 값을 검색해주고 변경할 수 있는 프로그램이다. 물론 지금 설명한것보다 더욱 대단한 프로그램이지만, 그렇다고 알아두자.
치트엔진의 다운로드는 2018년에 포스팅했던 글에서 다운로드할 수 있다.
그리고 나는 멜론플레이어 프로그램에 저장된 어떠한 값을 찾는 것이므로 MINNO를 검색했다.
검색한 MINNO의 값이 JSON 형식으로 저장되어 있었고, 찾던 값이 "9021241655" 인 것을 알 수 있었다.
내가 알기로는 계정에 따라서 고정적인 값이므로, 두번 이상 찾을 일은 없으시겠다. (하지만 또 모른다.)
이제 복호화할 대상 DCF파일을 필요해서 안드로이드에서 다운로드했다. PC의 멜론플레이어에서 다운로드해도 상관없지만 내가 결제한 프리클럽은 모바일에서는 DCF 다운로드가 무제한이지만 PC에서는 100회로 제한된다. 그렇다. 나는 생각보다 짠돌이다. (밥 사주실분?)
DCF파일은 요렇게 생겼다. 스윽 본다. 맥과 같은 환경은 다른 구조일 수도 있다고 생각된다. 다른 구조를 가지고 있다면 뒤에 나오는 코드는 아무짝에도 쓸모가 없어진다.
짜잔.. 처음 등장한 DCF를 MP3로 변환하는 프로그램이다. 여기에 아까 찾은 10자리 숫자를 슬쩍 기입한다.
sha1을 100번이상 하는것을 알 수 있다. 음악을 재생할 때마다 내폰이 아팠겠구나.
dcf와 파일크기가 비슷한 mp3파일을 확인할 수 있었고, 이렇게 40분짜리 포스팅이 완성되었다. 음핫핫!
소스코드의 전체공개를 하려했으나, 무분별한 사용은 문제를 일으킬 것 같아 20%의 코드는 숨겨두었다.
궁금하신분에게는 따로 전송은 해드릴 수 있겠다.
이렇게 포스팅을 마친다.
원래 공개하지 않으려했으나, 주변에서 각자의 기술을 거리낌없이 공개하는듯한 분위기인것 같아 내가 아는것을 공유해본다.
----------------------
2020년 4월 26일 추가
----------------------
이 글과 관련하여 댓글이 많이 달립니다.
또는 메일로도 많이옵니다.
제가 20% 코드를 보내드린다고 썼는데 관련하여 백통이상의 메일을 받은 것 같습니다.
지금까지 아무도 보내드리지 않았습니다.
법적으로 자신의 파일을 푸는것은 문제가 없으나 2차 유출이 되면 책임을 질 것 같아서입니다.
이 글이 써지고 있는 티스토리조차 카카오의 것이며, 멜론도 카카오의 소유입니다.
보내드리기 어렵습니다만, DCF파일을 메일로 보내주신분들에게는 대부분 풀어드리긴했습니다. 하지만 이마저도 많아지면
제 시간이 소요되기때문에 거절될 수 있음을 말씀드립니다. 감사합니다
E-mail: admin@hack.kr
'리버싱' 카테고리의 다른 글
[HackShield] SDK Version 5.7.14.555 Bypass (10) | 2019.12.02 |
---|---|
안드로이드 리퍼블릭 분석 (1) | 2019.09.19 |
IOS App 동적분석하기 with LLDB (Tested on ios 11.4.1) (0) | 2019.06.10 |
멜론 dcf 파일 drm해제해서 mp3으로 변환했따. (16) | 2018.09.05 |
운영체제에 따른 함수 호출 인자 정보 (0) | 2018.08.17 |
댓글