Free My DRMs

Shovel, Development

네이버 시리즈에서 새로운 웹툰을 지르고서는 내가 산 웹툰을 보기 위해 뷰어를 받아야한다는 것을 깨달았다.

유선상어로 뷰어가 이미지를 어떻게 가져오나 봤더니 down.nbooks.naver.com/drm/(웹툰 ID)/(화수)/001.jpg.enc 와 같은 형식으로 받아오더라. 해당 이미지는 로그인되지 않아도 받아올 수 있다. 하지만 문제는 암호화 되어있다.

뭔가 느낌상 그 키를 http://apis.naver.com/nbooks/nbooks/comicViewerVolumeContext.xml 에서 받아오는 것 같은데 해당 XML에 적혀있는 Base64를 그대로 키로 쓰는지도 모르겠고 리버싱은 죽어도 못하겠고 해서 다른 방법을 조금 고안해보았다.

뷰어는 Web 기반이고 js를 호출하며, 뷰어 내부에서 이미지에 접근할 때에는 ncomicpic://image?index=1 과 같은 형식으로 이미지에 접근한다.

그래서 다운로드받는 js를 Fiddler로 내 js로 바꿔치기했다.

if(oSession.url.indexOf("script/release/scrollViewer.js") !== -1) {
    oSession.url = "localhost:8156/scrollViewer.js";
}

그리고 localhost:8156에서 서버를 하나 돌려서 REPL과 같은 환경을 하나 만들고 이런저런 실험을 해봤다.

결론적으로만 말하면 <a download>를 만들어서 받는 식으로 하긴 했다. 그거 말고도 하나의 canvas에 이미지 전체를 그려서 받아볼까 등 여러 실험을 해봤는데, Cross-Origin에 걸려서 안됐었다. 짜증