涛之雨 发表于 2022-8-8 13:06

云展网加密书籍算法解密

本帖最后由 涛之雨 于 2022-8-8 13:28 编辑

# 绪论

(好久没发帖了)

本帖起因

> python下载云展网书籍并合并为PDF
> https://www.52pojie.cn/thread-1672367-1-1.html
> (出处: 吾爱破解论坛)



# 定位

定位到解密代码的位置

这里不赘述,页面里有一个`iframe`,`iframe`中为核心预览页,抓包发现有zip文件下载,并且如图所示,请求了zip文件后,继续请求了带有`PDF`magic头的`blob`协议,多半就是本地解密后丢到pdf里运行了。。



`PDFjs`库不会取消过程中产生的`blob`链接,新页面打开,发现有密码,



根据请求堆栈找一下密码计算的位置,这密码不就有了么



啥?不会?~~(这都不知道就不要学了)~~行!我录gif动画!



还是看不懂?=_=那我确实是没办法了,要不多看看?

然后就是下载zip,解压试一下。。。emmm好像`zip`文件也加密了,打不开,magic头也不对。

该分析解密部分了。

# 解密

反正解密的地方都找到了,分析就完了。

>试读结束,以下内容为付费阅读部分,请先自觉到文末免费评论,再返回此处继续阅读

---

(↑↑人与人之间的信任↑↑)
   
(中国人不骗中国人)

解密的核心代码:



请求连接,获取到`x.zip`文件(图中`response`,二进制数据,下称:`zip数据`),

其中,获取到的`zip数据` 第`1083`位 至 倒数`1003`位 为`加密后的pdf数据`(图中`blob`定义处)

(好嘛,不是什么所谓的zip文件)

`zip数据`的 第`1080`位 至 第`1083`位 的十六进制字符串为密码的前半截,

后半截为`zip数据` 倒数第`1003`位 至 倒数第`1000`位 的十六进制字符串

两段密码拼接为完整密码

pdf密码到此结束。



pdf文件本身还需要进行解密,

`加密后的pdf数据`前4000位字节码依次被`255`减去即为原始数据(似乎就是`unsigned int`取反)

# 检验

静态分析完,进行验证。

下载`1.zip`,16进制打开。

读取第`1080`位 至 第`1083`位 的十六进制字符串(注意是10进制),进行对比。

|||
| ------------------------------------------------------------ | ------------------------------------------------------------ |

读取 倒数第`1003`位 至 倒数第`1000`位 的十六进制字符串,进行对比。(注意从文件末尾向前查找)

|||
| ------------------------------------------------------------ | ------------------------------------------------------------ |

> 大部分编辑器可以通过快捷键`Ctrl + G`跳转
>
> 010 Editor可以通过`<xxx`从文件末尾向前进行跳转
>
> 其余软件请自行斟酌。

随手写个js脚本放到console控制台里跑一下,把解密后的数据粘贴回16进制编辑器。

```js
`DA AF BB B9 D2 CE D1 CB F5 DA 38 13 70 5D F5 DA
...............这里省略好多行.....................
DA B6 91 89 90 9C 9E 8B 96 90 91 C5 DF 8F 9E 8B`.split(/ |\n/g).filter(a=>a).map(a=>(255-Number("0x"+a)).toString(16)).join(" ")
```

脚本附在上面



输入pdf密码`zOTibU`,成功解密。

# 成品

算法都给你了,自己写。

涛之雨 发表于 2022-8-8 20:08

瑾年Lee 发表于 2022-8-8 17:30
有没有大佬解惑下那个js脚本怎么用,复制下载的PDF文件编码发现运行不出来

那个脚本是手动复制删除多余字节后pdf的前4000位十六进制字符串,粘贴到前面的那两个`之间,敲回车后就会计算出255减去每个值的数值并且转为16进制,console里会显示部分,后面会有“复制”,点击复制,粘贴回pdf里就可以了
(其实py的话也就几行,也不需要什么库,但是py需要环境。。。)

wflie5199 发表于 2022-8-8 13:12

图片没有显示出来

李佑辰 发表于 2022-8-8 13:30

写的不错咩~~

Michael_Yang 发表于 2022-8-8 13:33

虽然看不懂,担佩服之情连绵不绝

iawyxkdn8 发表于 2022-8-8 13:36

算了,我还是下载成品去吧!

xiaotwins 发表于 2022-8-8 13:43

大佬牛啊先收藏了再说

iawyxkdn8 发表于 2022-8-8 13:54

本想给你1000CB,想想还是让你自己来拿!:lol

Yu417 发表于 2022-8-8 14:16


写的不错咩

ruikai 发表于 2022-8-8 14:40

大佬厉害 大佬威武

我是不会改名的 发表于 2022-8-8 14:49

http://pic.rmb.bdstatic.com/bjh/703625a5bdb22c0fb07c81e1396eb218.png
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 云展网加密书籍算法解密