UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1677|回复: 0
收起左侧

[Web逆向] 【WEB逆向】某瓣读书搜索接口

[复制链接]
IMG1257

主题

0

回帖

UD

新手上路

UID
49
积分
34
注册时间
2022-5-18
最后登录
1970-1-1
2024-1-17 01:22:33 | 显示全部楼层 |阅读模式

在论坛潜水了这么久,都没发过贴,发现n年前写过一篇某瓣的逆向,里面的东西挺有意思的,就搬来这里了(网站可能已经更新,懒得去看了 😂)

首先来看一下原始数据,可以看到 window.DATA 里面是一大串意义不明的乱码
【WEB逆向】某瓣读书搜索接口 - IMG1257_UltraDebug

直接全局搜索 window.__DATA__ 然后下断点,刷新页面
【WEB逆向】某瓣读书搜索接口 - IMG1257_UltraDebug

进入到 Lt.dispatch 函数内部
【WEB逆向】某瓣读书搜索接口 - IMG1257_UltraDebug

这里很明显,r 就是 window.__DATA__,即原始数据,e(t)(n) 意思是原始数据经过了若干个函数的处理

我们进入到函数内部,看看具体做了什么,以及怎么用python来实现相同的功能

第一个函数

首先是 (n) 函数
【WEB逆向】某瓣读书搜索接口 - IMG1257_UltraDebug

可以看到里面有好几处处理,我们一个一个来复现

  1. a = e.from(r, "base64")
    【WEB逆向】某瓣读书搜索接口 - IMG1257_UltraDebug

原始数据r经过e.from函数的处理后,变成了Unit8Array的数据类型,其实就是对原始数据进行 base64 解码
python主要使用base64标准库实现

a = list(base64.b64decode(data))

【WEB逆向】某瓣读书搜索接口 - IMG1257_UltraDebug

从上图可以看到两个的效果都是一样的

  1. su
s = Math.max(Math.floor((a.length - 2 * i) / 3), 0)
u = a.slice(s, s + i)

这两个就不用多说了,s是地板除(后面的0可以忽视),u是切片操作,python实现:

s = floor((len(a) - 2 * i) / 3)
u = a[s : s + i]
  1. a = e.concat([a.slice(0, s), a.slice(s + i)])
    concat是连接的意思,e.concat其实就是对两个数组进行合并操作
a = a[0:s] + a[s + i :]
  1. c = Object(o.hash)(e.concat([u, e.from(t)]))
    这一步进行了较多操作,首先是 e.concat([u, e.from(t)]),几次打断点发现 e.from(t) 都是空数组,所以这里结果只有 u数组
    然后是 Object(o.hash) 很明显这里是一个ha
还有更多的精彩内容,作者设置为付费后可见
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-18 06:44 , Processed in 0.034449 second(s), 10 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

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