728x90

DCF 파일을 MP3 파일로 변환할 수 있을까?

옴니아가 멜론 폰이어서 멜론으로부터 음원을 다운받는 것은 핸드폰을 사용하는 기간 동안은 무제한 무료이다. 최근에 노래를 잘 듣지않던 내가 최신 노래들을 어느정도 알게 된 것도 다 이 덕분이다. 그런데 다운받은 파일들이 MP3 포맷이 아니라 모두 DCF 파일이다.

DCF는 DRM Contents File 즉, DRM이 걸려있는 컨텐츠 파일이다. 여기서 DRM 기술은 디지털 컨텐츠의 저작권을 보호하기 위해서 일종의 잠금장치를 해둔 것으로 생각할 수 있는데 DRM이 걸려있는 파일은 반드시 이 잠금장치를 해제하여야만 파일을 접근할 수 있다. 몇년전 음원의 불법 유출이 당연시 여겨지던 시절때문에 아무나 그리고 아무데서나 음원을 재생할 수 없도록 하기위해서 만들어진 기술이라 하겠다.

근데 DCF 파일은 특정 플레이어에서만 동작을 한다는 문제가 있다. 왜냐하면 DCF Decoder를 공개하지 않기 때문에 오픈소스 개발자 등이 만든 멀티미디어 플레이어에서는 DCF 파일을 재생할 수가 없다. 현재 옴니아폰에서는 터치플레이어와 윈도우 미디어 플레이어 두 플레이어에서만 재생이 가능하다. 그래서 DCF 파일 포맷을 분석해서 몇가지 헤더를 날려버리면 MP3로 변환할 수 있지 않을까하는 생각을 하게 되었다. 그러나...

DCF를 MP3로 변환할 수 없다.

DCF의 헤더를 살펴본 결과 AES 방식으로 인코딩이 되어 있기 때문이다. AES는 DES 알고리즘을 보완하기 위한 암호화 알고리즘으로 공모를 통해서 채택한 암호화 방식이다. 뭐 자세한 알고리즘은 넘어가기로 하고 이 AES 암호화를 풀기 위해서는 키를 알아야 하는데 (대칭형 알고리즘이므로 암호화나 복호화시 동일한 키가 필요함) 현재 AES 암호화의 취약점에 대한 연구가 활발하지만 키 없이 이를 풀 수 있는 방법은 아직 없다. 따라서 DCF를 단순한 방법으로 복호화 할 수 없다.

직접 AES 알고리즘을 복호화 할 수 없기 때문에 생각할 수 있는 다음 방법은 Decoding 함수를 찾아내어 이 함수를 이용하는 방법이다. 멜론 플레이어나 터치 플레이어 등 DCF를 재생할 수 있는 프로그램에서 DLL 등을 뒤져서 Decoding 함수를 찾아낸다면 이를 호출하여 DCF를 디코딩하고 다시 이를 MP3 형식으로 인코딩이 가능하다. 그러나 가볍게 뒤져봤는데 해당 함수를 찾을 수 없었고 지금까지 DCF->MP3 변환 툴이 나오지 않는 것으로보아 아무도 못찾은것같다. 그래서 잠깐 찾아보고 나도 그만뒀다. Deassembling을 통해서 assembly어 수준에서 해당 부분을 찾는 것도 순조롭지는 않을것 같다. softICE 등을 통해서 해당 루틴을 찾는다고 하더라도 거기서 호출하는 함수들을 모두 찾고 포팅하다보면 일이 매우 많아 질것 같기 때문이다.

그래서 결론은 "지금은" DCF를 MP3로 "직접" 변환 할 수 있는 방법은 없다.

"지금은"과 "직접"이라는 말을 강조한 이유는 가능성은 희박하지만 사전방식이든 Brute Force방식이든 어떠한 방식으로 AES의 키를 찾아내는 경우 해결이 가능하고 또한 누군가 deassembling을 해서 DCF 디코딩 루틴을 복원한다면 또한 가능하다. 그리고 "직접" 변환하지 않고 "간접"적으로 변환하는 방법을 사용하면 DCF를 MP3로 변환할 수 있다. 그 대표적인 예가 멜론에서 플레이를 하고 이 재생음을 다시 녹음하는 방식이다. 최근 곰녹음기와 같은 프로그램을 이용하여 DCF 파일을 MP3로 변환하는 방식이 널리 알려져 있다. 그러나 다들 알다시피 매우 귀찮다. 그래서 자동으로 녹음해주는 프로그램을 어느 개발자가 개발하였으나 멜론측에서 저작권 문제가 있으므로 프로그램의 배포를 중지하라고 요청한 모양이다. 더이상 이 프로그램은 배포되지 않는다.

따라서 현재 DCF 파일을 MP3로 변환하는 유일한 방법은 녹음기로 녹음하는거다. ^^

왜? DCF 파일은 다른 핸드폰(또는 MP3 플레이어)에서 재생이 안되는 걸까?

MP3와 같은 음원 파일은 한번 만들어지게 되면 복사를 통해서 어떠한 장비(물론 코덱이 있는 장비)에서도 재생이 가능하다. 그래서 이 파일을 다른 사람과 공유할 수 있고 또한 내가 가진 여러가지 모바일 장치에서 다 같이 사용할 수 있다. 그러나 DCF 파일의 경우 지정된 하나의 장치에서만 재생이 가능하다. 그 이유는 MP3와 같이 다른 사람과 공유하지 못하게 하기 위해서이다. 그러다보니 부득이하게 DCF에 대해서 정당한 권리를 가진 사람도 자신이 소유한 여러 개의 장치에서 함께 사용하지 못하는 상황이 되어버렸다. (또 여기에 일종의 장사속까지 합세하여 모바일 장치마다 팔아먹겠다는 심보가 있을지도 모르겠다.) 그래서 DCF 파일을 다운 받을때 장치를 등록하는 이유가 여기에 있다.


728x90
복사했습니다!