作者用https://www.jetbrains.com/decompiler/ 反编译了bookwalker客户端(\BOOK☆WALKER\BOOK☆WALKER for Windows\bookwalker-cleaned.exe),然后拿到了用来解密的Class16(在class16.cs)中.(怪不得这个程序是c#写的)
I spent a month writing my BW decryption script in python. You'll get a headache juggling all the decryption passwords that Bookwalker uses. Decrypting an image in a BW book involves reading a key from an encrypted database with which you can open an encrypted zip file in which is another encrypted zip file in which is an AES key split into three separate encrypted files. With that key you can decrypt a jpeg in a book, after which you deobfuscate the data with an xor-phrase you get from an encrypted file in the zip file I mentioned, after which you decrypt the first 10272 bytes again with the same AES key and then you deobfuscate it again with yet another key you generate from an encrypted file in the zip file. And that's only the jpegs not including the cover image that's not even stored in the same folder as the other images.
……但是这个工具最大的问题是,现在的bookwalker的客户端已经不会生成bwdb.sdf 倒是有个database.sdf
我发你个我的文件夹你试试?
你试直接把database.sdf 改成bwdb.sdf试试?
这个sdf文件应该是SQL server CE(类似SQLite)的数据库文件,用对应的driver就能读取
压缩包里有源码,我看了看,大概就是读取这个sdf文件,拿到密钥,然后把content文件夹的内容解密出来。
如果加密方法没变,可能需要的也就是改一改对应的数据库表名和字段名,应该也不会很难,但是这个工具是用c#写的,我并不会。
我倒是找了个老的bwdb.sdf(我不知道为啥在程序的安装目录里有一份),能跑起来
但是所有图片解码都报“无法xxx到实例”之类的错误
我VS调试下看看吧……虽然不抱什么希望(其实之前就下到过这个工具,当时就没搞成功)
作者用https://www.jetbrains.com/decompiler/ 反编译了bookwalker客户端(\BOOK☆WALKER\BOOK☆WALKER for Windows\bookwalker-cleaned.exe),然后拿到了用来解密的Class16(在class16.cs)中.(怪不得这个程序是c#写的)
这个bwdb.sdf是加密的,原本的密码是ccs3319_bookwalker(不知所措作者从哪弄出来的,但是他用base64转码过之后放倒了代码里)
然后从system_info读取了client_key_public和client_key_secret,client_uuid
从book表读取了解密用到的XOR_PHRASE
然后把这些传递给class16用来解密文件
如果加密方式改了的话,可能需要重新反编译看看加密的办法...
没猜错的话密码应该在KReader.Model.Entity.CustomUri里面,这个cusmosUri里面应该就包含了密码的原文.
但我找不到什么办法看到他
我之前看那个4chan帖子的时候也下载了那作者发布的破解工具,结果下到最新版客户端以后发现下载的书籍已经不是bwdb格式了,直接改扩展名不可行。我后来是找到了一个2015年左右的老客户端,但是打开之后它会强制要求更新客户端版本然后自动退出,这就没办法下载书籍了……我不懂编程,当时在想要是有办法去掉里面强制要求更新的代码,或者替换其搜索更新版客户端的URL,是不是就能绕过强制更新检测了?可惜我完全不懂,这事也就搁置了……
就刚才我在谷歌搜索的时候也看到轻之国度的一个用户属性页缓存:
我知道我的请求很无耻,但我还是要说——可不可以把DAL安可4的权限降下来,我知道扫图和翻译的大大们贡献都很大,我们这些伸手党确实不应该说什么,我本人虽然日 ... 权限我已经压的很低了。协助我扫图的人本来是建议我加八九十的权限的。因为这种扫图方式是破解BOOK WALKER的客户端,源文件传播太多的话日方就会对此有所对策。因此这种扫图的权限都会比较高,也是实属无奈之举。而这种担忧在最近也变成了现实,最近一次BOOK WALKER客户端的强制更新似乎已经封住了这个后门,暂时无法破解了。你的情况来看,我建议你利用业 ... ...
这段话是2015年的留言,看来官方应该也是注意到了这个BUG然后强制更新封掉了……
等待各位大佬的研究成果中,非常感谢!
4chan你搜18、19年的帖子就知道破解方法一直是有人有的(包括新版),包括国内也有很多人会,但是他们不外放而已(原因显而易见)。
其实BW的客户端加密也没怎么大改,就是数据库改了个名字换了个密码,我甚至怀疑图片加密的算法都没改。
https://gist.github.com/Sg4Dylan ... 0-1-8_2018-02-09-js
然后在一个最近的帖子(http://cncc.bingj.com/cache.aspx ... 5UqM2Q_eg5saEHlDecW)里也提到了这个脚本,他们觉得可能对在线浏览时解除DRM有所帮助,但是我完全看不懂也不会用……
邮箱地址在他的GitHub首页
第一个看了下,难道不是BW在线浏览器的js而已?
https://preview.bookwalker.com.t ... 2.0.5_2018-09-28.js
12w行就是有改动也找不到在哪里了
想要的是完整提取原始文件(尤其是图片)罢了。
杂志之类的倒是画质差不多(分辨率的话kindle都是1920px,BW好像是2048)
我手头最近的一本是 変態王子と笑わない猫。11 (MF文庫J) 还是1600px
(不过看了下都是16年的了囧)
反正我已经投奔kobo了)
(另外CanvasRenderingContext2D.getImageData()貌似会因为浏览器安全策略被挡,而且也不知道是不是返回写入的原始数据)
原始数据的话考虑重写整个 canvas API,但不清楚是否有检测
但如果是混淆的话普遍使用 eval 肯定不会预先留存原生 API
但是都是要你給他帳號密碼他幫你提取...
也就是他不會教你方法...
我也研究了好一陣子 嘗試把檔案打包成epub
在用Epubor Ultimate嘗試破解 結果不行 顯示未知的加密方法
真希望有人能夠指點一下
网页端稍微注入下脚本至少可以获取到原图尺寸的canvas 然后保存就是了
(还没研究怎么批量就是…)
网页端的话我是一页页翻的
NFBR.a6G.Initializer.B0U.menu.model.get("viewerPage")
NFBR.a6G.Initializer.B0U.menu.a6l.moveToPage()
另外有没有研究过Android端的dalao能说说怎么过它的root检测,连Magisk都不行
完事了,PC端licenseUnitVersion还在5,Android端却跑到6了,而且Android竟然还保留着3-5的文件名映射 (虽然低版本的文件还是会提示版本不符)
另外某处拿"島風雪風吹雪赤城"来当passPhrase太草了
能再多问句canvas自动下载怎么绕过“Tainted canvases may not be exported”的问题么?
我因为很少整本下载,所以一般就手动保存了,不过多少还是繁琐…
Edit: 去chromium bug tracker搜了半天才知道,原来这个选项必须要和--user-data-dir一起用……也没个提示
----
不过还是请问原档是指?magazinewalker网页版,似乎资源只有打乱的图,是指用App能直接获取到原始图像文件吗?能详细说说吗
另:请问图片的分辨率是1448*2048左右吗?另图片属性中是否有编辑信息(如Photoshop 版本等),如果有的话那就应该是真的原图。。
PS:补充一组对比 https://share.dmca.gripe/a/F1rYLot0
以及也是看楼上说老资源还是低清图源
或
https://github.com/Aeroblast/UnpackKindleS
老资源珂以去kobo,而且这平台的破解已经到处都是。