吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1496|回复: 50
上一主题 下一主题
收起左侧

[Web逆向] 某电子书阅读网站EPUB资源逆向分析

  [复制链接]
跳转到指定楼层
楼主
逗啊逗 发表于 2025-3-20 18:27 回帖奖励
本帖最后由 逗啊逗 于 2025-3-20 18:40 编辑

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关.本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责。

需求

下载目标网站的书籍。

目标网址

aHR0cHM6Ly9oNS5tZXRhcmVhZGVyLmNuL2g1L3BhZ2VzL3BjL3dlYj9iaWQ9MTA2NDg4OTg5NjQwMzAyMDgmYXBwSWQ9MGJpZGc1MnImdGVuYW50SWQ9MTAxMDAxJmluZGV4PTA=

前言

前一段时间发布过几篇关于期刊、书籍网站解析下载pdf、epub的文章(博看网期刊下载生成pdf【实操AI编程】QQ阅读·机构版解析生成EPUB电子书期刊网杂志解析生成PDF(完整解析流程+源码)),因为基本没有什么加密,没什么逆向的必要,就直接分享代码了,本次的网站就稍微多了一点加密,姑且发布在这里做一个记录,web逆向方面我还是个小白,感谢各位大佬支持和指导~

逆向过程

抓包分析

  1. 先过一边接口,凭借经验把有用的记录一下,做到心中有数。
  2. 查看下载资源。

    这里其实挺明显的,来回翻页的时候发现书籍每一页都会加载一个独立的epub文件进行解析显示。直接下载发现可以下载但是无法打开。

    正常的epub文件时直接可以用解压文件打开的,这里说明被加密了。那我们就需要解密epub文件。

解密EPUB文件

查看分析处理epub文件部分的代码。

看上去很是很是顺利,甚至已经注释了解密书籍的函数,看一下发现用的CryptoJS

验证解密方式

下个断点看一下url和password

测试一下:

const CryptoJS = require('./crypto-js.js');
const fs = require('fs');

async function getEpubContent(url) {
  const https = require('https');
  return new Promise((resolve, reject) => {
    https.get(url, res => {
      const chunks = [];
      res.on('data', chunk => chunks.push(chunk));
      res.on('end', () => resolve(Buffer.concat(chunks)));
    }).on('error', reject);
  });
}

function decryptedBook(buffer, c_key) {
  const key = CryptoJS.enc.Base64.parse(c_key);
  const encrypted = CryptoJS.lib.WordArray.create(buffer);
  return CryptoJS.AES.decrypt(
    { ciphertext: encrypted },
    key,
    {
      mode: CryptoJS.mode.ECB,
      padding: CryptoJS.pad.Pkcs7
    }
  ).toString(CryptoJS.enc.Latin1);
}

(async () => {
  const password = "";
  const url = "";

  try {
    const buffer = await getEpubContent(url);
    const decrypted = decryptedBook(buffer, password);
    fs.writeFileSync('decrypted.epub', decrypted, 'binary');
    console.log('解密成功!');
  } catch (error) {
    console.error('处理失败:', error);
  }
})();

查看解密后文件:

发现已经可以正常打开,且文件内容正常,至此,已完成一半内容,接下来需要找到url和password。

获取password

其实url在浏览接口的时候就已经看到了:

那么只需要找到password的生成方式。

抓包分析

最开始过接口的时候就已经有猜测了:

api/front/drm/auth/book这接口名又是drm又是auth的,其实很大程度上可以确定这个接口跟加密相关了,更何况data里还有encrypt这么直白的参数

代码分析

先检索api/front/drm/auth/book

找到authBook,再次检索

只有8个结果,且在同一文件下,全部打上断点。

这里发现了刚才的password的值,

进入到关键函数T,再次打上断点。

可以看到就是此处生成的,而且代码上看使用的JSEncrypt。

验证解密方式

对于PrivateKey其实接口里面就看到过,走一下形式,检索一下:

验证

用其他书籍验证成功,此处略过。

其他参数

所需的参数实际上只差header中的token以及deviceid,因为需求是“下载目标网站的书籍”,所以不做分析,直接在header和localstorage中获取即可。

后续处理

接口完整且加密部分使用的标准库,并没有魔改,可以直接改写成其他语言,只需要遍历目录,全部下载后可合并成书籍的完整epub文件。(本文只提供加密部分的逆向分析,不提供完整代码)



至此,文章结束,感谢观看,撒花~

免费评分

参与人数 11威望 +1 吾爱币 +30 热心值 +9 收起 理由
yunshengfei9 + 1 + 1
allspark + 1 + 1 用心讨论,共获提升!
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
hoon + 1 谢谢@Thanks!
heavenblue + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
HillBoom + 1 + 1 用心讨论,共获提升!
s3nake + 1 + 1 我很赞同!
Junglelay + 1 用心讨论,共获提升!
yhu123 + 1 + 1 谢谢@Thanks!
cudo + 1 + 1 谢谢@Thanks!
ahaneo + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
zeldar64 发表于 2025-3-21 07:52
epub格式接触的主要是漫画和轻小说,有个网站故意打乱图片顺序来防止被盗用资源的操作有点逆天,本来就是免费分享的网站
推荐
 楼主| 逗啊逗 发表于 2025-3-20 22:45 |楼主
shallies 发表于 2025-3-20 18:57
厉害得很呢!!!
楼主如果能分析一下掌*的epub解密,那便是极好的了。

印象里掌阅没有加密,处理过掌阅精选,就是机构版,只需要处理好接口就行,可以参考我之前写的关于qq阅读机构版的处理逻辑。
沙发
kris2025 发表于 2025-3-20 18:32
3#
lw317627 发表于 2025-3-20 18:39
谢谢分享,我得仔细学习下
4#
zpcy652 发表于 2025-3-20 18:41
正是需要的内容,谢谢分享
5#
qwe5231556 发表于 2025-3-20 18:43
学习学习,看看过程,醍醐灌顶
6#
space4fly 发表于 2025-3-20 18:49
谢谢分享
7#
shallies 发表于 2025-3-20 18:57
厉害得很呢!!!
楼主如果能分析一下掌*的epub解密,那便是极好的了。
8#
MX138 发表于 2025-3-20 19:05
学习了。谢谢分享。
9#
TL1ng 发表于 2025-3-20 19:26
你好,我想问一下,你发的贴子中,所说的“测试一下”后面的代码,是在哪儿运行的?
10#
luojineng 发表于 2025-3-20 19:36
还有个关键步骤,需要把资源文件补齐。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-28 20:37, Updated at 2025-03-28 20:37:10.

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表