js逆向-某旗小说

2023-11-20

声明

本文仅供学习参考,请勿用于他途,违者后果自负

前言

笔者一直是一个小说控,喜欢看小说很多年了。自从学会了python后,就经常会去不同的小说网站抓取小说保存到本地阅读,最近发现一本很好看的小说,准备抓下来看,却发现有请求参数和返回的接口数据有加密!

参数分析

目标网站:

aHR0cHM6Ly93d3cuc2h1cWkuY29tL3JlYWRlcj9iaWQ9NzEwMjM5NCZjaWQ9ODI0NjA2

在这里插入图片描述
在这里插入图片描述

params中有一个sign参数,32位长度,忙猜md5。响应数据比较长,暂不确定是什么加密,需要分析。

逻辑分析

首先来看sign的生成,全局搜索关键字即可
在这里插入图片描述
在这里有一个sign的加密,打下断点,刷新页面并没有断下来,看一下这个代码是怎么回事。

sign: $.md5("imei=" + h + "&platform=an&readChapters=1&sn=" + h + "&timestamp=1234567890&userId=" + n + "&skey=8771731b23164da09a5b80c4d7e4c619").toUpperCase()

md5的加密,最后大写。但是URL参数中的sign并没有大写。说明不是在这里进行的加密,那跳过这个文件继续寻找,看到最后一个文件。
在这里插入图片描述
搜索sign会发现有一千多个。
在这里插入图片描述

而且最关键的是sign已经给出具体的数值了,不用再进行逆向处理了,简直了!
在这里插入图片描述

这个sign的分析就到此结束了。
继续看章节内容的加密逻辑,继续搜索关键字ChapterContent,进入文件。关键字比较有特点,所以一下子就找到了。
在这里插入图片描述
刷新,然后会断住。

在这里插入图片描述
解密函数传入密文,然后一系列的操作就可以得到明文了。

在这里插入图片描述
总体来说还是难度不大,细致即可。

扣代码

代码难度比较小,就直接附上了。码字不易,喜欢的可以给笔者点个赞。

function _decodeCont(t) {
return t = function(t) {
    return t.split("").map(function(t) {
        var e, i;
        return t.match(/[A-Za-z]/) ? (e = Math.floor(t.charCodeAt(0) / 97), i = (t.toLowerCase().charCodeAt(0) - 83) % 26 || 26, String.fromCharCode(i + (0 == e ? 64 : 96))) : t
    }).join("")
} (t),
function(t) {
    var e, i, a, n, r, o, c, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    d = "",
    l = 0;
    for (t = t.replace(/[^A-Za-z0-9\+\/\=]/g, ""); l < t.length;) n = s.indexOf(t.charAt(l++)),
    r = s.indexOf(t.charAt(l++)),
    o = s.indexOf(t.charAt(l++)),
    c = s.indexOf(t.charAt(l++)),
    e = n << 2 | r >> 4,
    i = (15 & r) << 4 | o >> 2,
    a = (3 & o) << 6 | c,
    d += String.fromCharCode(e),
    64 != o && (d += String.fromCharCode(i)),
    64 != c && (d += String.fromCharCode(a));
    return function(t) {
        for (var e, i = "",
        a = 0,
        n = 0,
        r = 0; a < t.length;) n = t.charCodeAt(a),
        n < 128 ? (i += String.fromCharCode(n), a++) : n > 191 && n < 224 ? (r = t.charCodeAt(a + 1), i += String.fromCharCode((31 & n) << 6 | 63 & r), a += 2) : (r = t.charCodeAt(a + 1), e = t.charCodeAt(a + 2), i += String.fromCharCode((15 & n) << 12 | (63 & r) << 6 | 63 & e), a += 3);
        return i
    } (d)
} (t)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js逆向-某旗小说 的相关文章

随机推荐

  • Google 在 ChatGPT 时代的生死之战:居然把 DeepMind 和 Google Brain 合并了

    今天一大早 6 点起来 居然看到 Google 将 DeepMind 和 Google Brain 合并为 Google DeepMind 了 Google and Alphabet CEO Sundar Pichai DeepMind 创
  • 计算机基础之组成原理

    计算机组成原理 一 计算机的基本硬件组成 CPU 内存 主板 I O 设备 显卡 二 计算机如何执行指令 计算机指令 CPU如何执行指令 CPU 内部处理过程 CPU 的寄存器 程序计数器 条件分支和循环机制 CPU 指令执行过程 内存 内
  • 编译micropython中的mpycross

    root charles VirtualBox media sf Linux micropython master make C mpy cross make Entering directory media sf Linux microp
  • MySQL——基础50题

    MySql数据库50题 准备工作 参考答案 use PraticeSql create table SC SId varchar 10 CId varchar 10 score decimal 18 1 insert into SC val
  • Freertos 在contexM0芯片上的移植

    1 freertos源码 官网下载地址 https www freertos org 下载LTS长期支持版本 2 在工程目录下新建FreeRTOS文件夹 将FreeRTOS 的源码添加到这个文件夹中 portable 文件夹中只需要复制 k
  • shared_ptr使用场景、陷阱、性能分析,使用建议

    1 std shared ptr使用场景 include
  • 【leetcode】1.两数之和

    力扣原题传送门 https leetcode cn problems two sum 目录 题解 代码链接 题解 class Solution public vector
  • 隐藏通知内容什么意思_原来华为手机隐藏5个技巧,难怪别人都说华为好用,涨知识了...

    阅读本文前 请您先点击上面
  • Kinect开发学习笔记之(追加)深度距离误差分析

    由于最近要研究kinect采集到的深度信息的一些统计特征 所以必须先对kinect深度信息做进一步的了解 这些了解包括kinect的深度值精度 深度值的具体代表的距离是指哪个距离以及kinect深度和颜色扫描范围等 经过查找资料可以解决这些
  • 开启电脑ssl协议的方法

    转自 微点阅读 https www weidianyuedu com 电脑ssl协议怎么开启 开启ssl协议的方法是什么 经近期实际操作了解到开启ssl协议一共需要6个步骤 很快即可完成 以下是开启电脑ssl协议的方法介绍 1 首先打开浏览
  • html src 参数,HTTP参数解析

    本文概述 在本节中 我们将讨论各种HTTP参数及其语法 例如 日期和时间格式 字符集等 这些参数用于在编写客户端或服务器的HTTP程序时构造请求和响应消息 HTTP的各种参数如下 HTTP版本 为了指示协议的版本 HTTP使用 编号方案 协
  • 办公网络上网行为管理规划

    办公网络上网行为管理规划是确保办公网络资源的合理利用和保障网络安全的重要措施 下面是办公网络上网行为管理规划的一般性步骤和原则 确立政策和准则 制定明确的上网行为管理政策和准则 明确员工在办公网络上的合规要求和行为规范 包括规定员工上网内容
  • 项目设计:基于YOLO目标检测算法的安全帽/口罩/汽车/行人/交通标志...检测

    本文将详细介绍YOLO目标检测算法 该算法支持各种目标检测 包括 安全帽 汽车 造价 交通标志 等 其他毕业设计题目推荐参考 毕业设计 电子 通信 计算机 物联网专业毕业设计选题参考 嵌入式linux 单片机STM32 web 图像 htt
  • 数据库难点知识

    索引 当表中有大量记录时 若要对表进行查询 第一种搜索信息方式是全表搜索 是将所有记录一一取出 和查询条件进行一一对比 然后返回满足条件的记录 这样做会消耗大量数据库系统时间 并造成大量磁盘I O操作 第二种就是在表中建立索引 然后在索引中
  • matlab通用操作界面窗口包括哪些,matlab作业题

    第一章 MATLAB环境 1 MATLAB通用操作界面窗口包括哪些 命令窗口 历史命令窗口 当前目录窗口 工作空间窗口各有哪些功能 答 MATLAB通用操作界面窗口包括 命令窗口 历史命令窗口 当前目录浏览器窗口 工作空间窗口 变量编辑器窗
  • 前端的工程化、模块化和组件化

    什么是工程化 工程化是一种思想而不是某种特定的技术 当然我们在实现项目工程化的过程中 我们也会去使用一些技术 前端工程化是使用软件工程的技术和方法来对前端的开发流程 技术 工具等进行规范化 标准化 其主要目的为了提高效率和降低成本 即提高开
  • 使用Class.forName 自动完成注册驱动,简化代码 但是 “//” 是使用最多的

    方式1 public void connect05 throws IOException ClassNotFoundException SQLException 通过properties对象获取文件信息 Properties propert
  • Python爬虫突破封禁的6种常见方法

    在互联网上进行自动数据采集 抓取 这件事和互联网存在的时间差不多一样长 今天大众好像更倾向于用 网络数据采集 有时会把网络数据采集程序称为网络机器人 bots 最常用的方法是写一个自动化程序向网络服务器请求数据 通常是用 HTML 表单或其
  • select2 获取选中的值

    获取选中的名 var cardTypeW cardType option checked text 获取选中的值 写法1 var cardTypeW cardType option checked val 写法2 var cardTypeW
  • js逆向-某旗小说

    声明 本文仅供学习参考 请勿用于他途 违者后果自负 前言 笔者一直是一个小说控 喜欢看小说很多年了 自从学会了python后 就经常会去不同的小说网站抓取小说保存到本地阅读 最近发现一本很好看的小说 准备抓下来看 却发现有请求参数和返回的接