[리디북스] DRM 해제하기, 한번 더 (ft. Riberty)

Edit (2020/09/09): 1.0 릴리즈 이후로 다시 돌아보지 않으려고 한 프로젝트이지만 정말 많은 분들이 자신이 소유한 책들을 킨들을 비롯한 타 이북리더에 옮겨서 읽고싶다며 요청해주셔서 간단한 버그픽스와 리디북스 Beta 앱을 지원하는 버전을 공유합니다. 리디북스 리더 Beta 앱을 사용하시는 분들은 다운로드한 책을 모두 삭제한 후, DRM 해제를 원하는 책들을 다운로드 받고 해당 책들을 열지 않은 상태에서 Riberty-beta 앱을 켜서 사용하시면 됩니다. 10.15.6에서만 테스트 해 보았습니다.


많이 바쁘기도 하고, 기술적으로 크게 어려워진 부분은 없었으므로 장문의 글은 게재하지 않을 예정입니다.

이전에는 Proof-of-Concept 수준의 파이썬 코드를 공개했는데, @disjukr님께서 간단한 GUI wrapper를 만들어주심에 영감을 받아서 이번에는 Riberty라는 이름의 간단한 툴로 만들어 배포합니다.

macOS만 지원하며, 10.12 (Sierra)와 10.14 (Mojave) 버전에서만 테스트 하였습니다. PyQt로 작성되었으며, 실행에 용이하도록 앱으로 패키징하는 바람에 용량이 39MB 정도로 꽤 큽니다.

PyQt를 사용한 것은 간단한 GUI를 지원하기 위함만은 아닙니다. 그러기엔 사실 용량을 고려했을때 비효율적이죠. 진짜 이유는.. 지난번 공개 이후 리디측에서 DRM 알고리즘에 약간의 변화를 두었는데 (정확히는 암호화된 content-key를 복호화하기 위한 key 도출 방법의 변화), 이 부분에서 리디북스 앱이 Qt 함수 몇 가지를 가져다가 쓰는데 직접 구현하기 귀찮아서 PyQt에서 임포트 해와서 사용하게 되었습니다.

 

사용방법

  1. 여기에서 압축파일을 다운로드 받습니다.
  2. 압축을 풀면, Riberty 앱이 나옵니다.
  3. 최초 실행 시, “확인되지 않은 개발자의 앱”이라며 경고가 뜰 수 있습니다. 이 경우, 보안 설정에 가서 예외처리 해주면 됩니다.
  4. 실행 후, 다음 화면에서 DRM이 해제된 파일들이 저장될 폴더 경로를 지정해주고 해제 버튼을 눌러주면 해제 작업이 시작됩니다.
  5. 해제 작업 진행중 모습입니다.
  6. 모든 파일에 대한 처리가 끝나면 다음과 같은 결과 화면이 나옵니다. 완료 메세지 클릭 시, 상세 내용이 나옵니다.

  7. 앞서 지정해준 폴더에 가보면 본인이 소유한 책들의 DRM-free 버전이 저장되어있는 것을 확인할 수 있습니다.

 

경고

위 프로그램은 어떠한 지원도 계획되어 있지 않으며, 해당 프로그램을 악용하여 받을 수 있는 법적 제재 또는 컴퓨터의 오류 등의 일체 문제는 사용자 본인의 몫이며 책임임을 밝힙니다.

위 프로그램은 리디북스 측의 알고리즘 변경으로 어느 시점에든 더이상 작동하지 않게 될 수 있음을 유의하시기 바랍니다.

 

You may also like...

152 Responses

  1. 나그네 says:

    책 제목에 슬래시 (/) 가 중간에 들어 있으면 해제시 오류가 나오는데요. 검토 부탁드립니다.
    예) 제목) 햄릿/멕베드
    ….. 슬래시(/)를 경로로 인식해 버리네요.

  2. podo says:

    안녕하세요. 궁금한 것이 있어 문의드립니다. 다른 것들은 무사히 잘 처리가 되었는데 합본을 해제하려고 하니 [Errno 2] No such file or directory: ‘~~.epub’ 이렇게 뜨면서 진행이 안 되더라구요. 다른 방법은 없는 건가요?

  3. simba says:

    좋은 앱 감사합니다! 코드를 보지 못해 아쉽네요.
    슬래쉬 (/)가 들어간 이름은 변환시키지 못하기는 합니다.
    감사합니다~

  4. gvty says:

    특수문자가 들어가는 경우에는 안되는거 같네요 ㅠㅠ 수정은 어렵겠죠..?

  5. anonymous says:

    책 제목에 “/”가 있으면 에러가 나네요. 에러메세지 내용으로 봐서 경로로 인식해서 그런 것 같기도 하고…. 감사합니다.

  6. G says:

    회사가 망해도 다운로드 서버를 이러이러한 방식으로 유지하겠다. 서버 유지 기금을 따로 책정하겠다…… 이런거라도 공약하면 불안하지 않을텐데요…… 혹시라도 리디가 문 닫게 되면 자연스럽게 drm 해제 툴이 퍼지는 방식으로 해결이 되겠네요…..

  7. chojjaim says:

    책 이름에 /나 ~와 같은 특수기호가 있으면 작동을 멈추는 문제가 있네요 ㅋㅋ

    좋은 프로그램 감사합니다. 이제 무거운 리디뷰어 안 쓰고 책을 볼 수 있게 되어 얼마나 좋은지 모르겠네요.

  8. 창천 says:

    변환 중에 일부 책은 변환이 안 되네요.

    시리즈인데 예전께 안 된거 봐서는 예전에 나온 책은 예전 알고리즘으로 되어서 그런걸까요?

    포스팅 감사 드립니다.

  9. windroad says:

    같은 시리즈임에도 일부 작품은 실패로 뜨는게 있네요.
    권수로 봐서는 초반의 권들이 그러는거 같은데 알고리즘 변경 전에 꺼라서 그럴까요?

  10. 창천 says:

    일부 책 제목에 /가 들어가 있는 부분은 폴더 경로로 인식 하는지 변환이 안 되네요.
    예) 묵시적/정치적 단편들

  11. MeroZemory says:

    구조는 완전 달랐지만 문제에 접근하는 방식을 많이 참고하여 크레마 루나, 교보문고의 전자책 해제에 성공했습니다. 감사합니다

  12. Brandon says:

    먼저 공유 감사드립니다.
    책 제목에 “/”가 있는 경우 폴더로 인식되어 변환이 안되고 그상태에서 다운(stuck)되는..현상이 발생합니다.
    임의로 폴더를 만드니까 넘어가긴 하지만 다른 또 “/”가 들어있는 경우 동일한 에러가 발생하여 결국 /가 제외된 책만 사용했네요.
    페이스북 메세지로도 관련 사항 자세히 남겼습니다.

  13. drmfree says:

    역시 티오리! 혹시 yes24, 알라딘, 교보도 drm풀어 보셨나요?
    ridibooks의 ebook들은 google play books 다 올라와 있어서 그걸 푸는게 더 쉬워보이네요

  14. boooo,anie says:

    리디뷰어에 책을 다 다운 받은 상태에서 맥 Sierra 10.12에서 사용해봤는데
    [Errno 2] No such file or directory: ‘/Users/(이름)/Library/Preferences/com.ridibooks.Ridibooks.plist’
    라고 뜨는데…. 리디 알고리즘이 변경되서 그런건가요..?

  15. Nic Lee says:

    책 이름에 \ 문자가 들어가면 정상적으로 추출이 않 되는것 같습니다. 추출이 않되는것 보다는 책이름으로 파일을 만들다 보니 \ 같은 특수 문자가 들어가있는 파일은 [Errno 2] No such file or directory: 형태의 Erorr가 발생을 하네요. 혹시 도움을 주실수 있으신지요? 감사합니다.

Leave a Reply to Brandon Cancel reply

Your email address will not be published. Required fields are marked *