某手创作服务 __NS_sig3 sig3 | js 逆向
拿获取作品列表为例
https://cp.kuaishou.com/rest/cp/works/v2/video/pc/photo/list?__NS_sig3=xxxxxxxxxxx
搜索__NS_sig3

发现__NS_sig3是一个异步回调生成的值
s().call("$encode", [i, {suc: function(e) {t(`__NS_sig3=${e}`)},err: function(t) {e(t)}}])
具体逻辑就是:
s().call("$encode", [...]): 这个部分表示调用对象s()上的call方法,并传递$encode作为第一个参数。这里的s()可能是某个对象或函数的调用,它返回了一个对象,该对象具有call方法。不明白call方法的可以参考这篇文章https://juejin.cn/post/7158686309211439141"$encode": 这是传递给call方法的第一个参数[i, { ... }]: 这是传递给call方法的第二个参数,是一个数组。数组的第一个元素i就是要加密的原数据。第二个元素是一个包含suc和err回调函数的对象。
打断点到s()...这里,看看i是什么

看起来i也是一个加密的值,有点像md5加密之后的样子,往上找i生成的地方
const i = m(t, e, n);

其中t是json字符串, e是cookies中的kuaishou.web.cp.api_ph的值, n是一个空对象

进到m函数里面发现e被JSON序列化之后有被加到了d(i)后面,最终调用a()(s)被加密出来。看到这里就可以愉快的扣js了,哪里没有补哪里。就不过多赘述了。
搞定i之后就可继续往下走了,既然__NS_sig3是通过s().call()生成的,自然我们就要搞清楚s()是在哪里定义的

找到s的定义s = n.n(o) 再找到o的定义o = n(7606),此时我们发现7606这个东西好眼熟,没错就是我们的老朋友webpack,接下来就开始扣webpack,如何扣webpack的步骤这里就不赘述了,网上的教程一抓一大把。
最后验证一下结果

Nice ,接下来放到python里面跑一下看看是否能成功
先来一个错误的sig看看什么样子

再试试我们自己生成的sig的结果

完美运行~
该部分算法和app中的某部分雷同
**本文仅供学习参考,如有问题询问或有需要可留言,或加q 1018866051 **请备注算法交流
某手创作服务 __NS_sig3 sig3 | js 逆向的更多相关文章
- 爬虫05 /js加密/js逆向、常用抓包工具、移动端数据爬取
爬虫05 /js加密/js逆向.常用抓包工具.移动端数据爬取 目录 爬虫05 /js加密/js逆向.常用抓包工具.移动端数据爬取 1. js加密.js逆向:案例1 2. js加密.js逆向:案例2 3 ...
- 兄弟,你爬虫基础这么好,需要研究js逆向了,一起吧(有完整JS代码)
这几天的确有空了,看更新多快,专门研究了一下几个网站登录中密码加密方法,比起滑块验证码来说都相对简单,适合新手js逆向入门,大家可以自己试一下,试不出来了再参考我的js代码.篇幅有限,完整的js代码在 ...
- 兄弟,别再爬妹子图了整点JS逆向吧--陆金所密码加密破解
好久没有写爬虫文章了,今晚上得空看了一下陆金所登录密码加密,这个网站js加密代码不难,适合练手,篇幅有限,完整js代码我放在了这里从今天开始种树,不废话,直接开整. 前戏热身 打开陆金所网站,点击到登 ...
- JS逆向之浏览器补环境详解
JS逆向之浏览器补环境详解 "补浏览器环境"是JS逆向者升职加薪的必备技能,也是工作中不可避免的操作. 为了让大家彻底搞懂 "补浏览器环境"的缘由及原理,本文将 ...
- Headless Chrome:服务端渲染JS站点的一个方案【上篇】【翻译】
原文链接:https://developers.google.com/web/tools/puppeteer/articles/ssr 注:由于英文水平有限,没有逐字翻译,可以选择直接阅读原文 tip ...
- 手机端网页返回顶部js代码
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" cont ...
- 网络爬虫之记一次js逆向解密经历
1 引言 数月前写过某网站(请原谅我的掩耳盗铃)的爬虫,这两天需要重新采集一次,用的是scrapy-redis框架,本以为二次爬取可以轻松完成的,可没想到爬虫启动没几秒,出现了大堆的重试提示,心里顿时 ...
- 这个爬虫JS逆向加密任务,你还不来试试?逆向入门级,适合一定爬虫基础的人
友情提示:在博客园更新比较慢,有兴趣的关注知识图谱与大数据公众号吧.这次选择苏宁易购登录密码加密,如能调试出来代表你具备了一定的JS逆向能力,初学者建议跟着内容调试一波,尽量独自将JS代码抠出来,实在 ...
- 爬虫必看,每日JS逆向之爱奇艺密码加密,今天你练了吗?
友情提示:优先在公众号更新,在博客园更新较慢,有兴趣的关注一下知识图谱与大数据公众号,本次目标是抠出爱奇艺passwd加密JS代码,如果你看到了这一篇,说明你对JS逆向感兴趣,如果是初学者,那不妨再看 ...
- 通过JS逆向ProtoBuf 反反爬思路分享
前言 本文意在记录,在爬虫过程中,我首次遇到Protobuf时的一系列问题和解决问题的思路. 文章编写遵循当时工作的思路,优点:非常详细,缺点:文字冗长,描述不准确 protobuf用在前后端传输,在 ...
随机推荐
- 2022年官网下安装ActiveMQ最全版与官网查阅方法
目录 一.环境整合 构建工具(参考工具部署方式) 二.下载安装 1.百度搜索ActiveMQ,双击进入.或访问官网https://activemq.apache.org/ 2.进入下载界面,两种方式, ...
- 2020版IDEA配置Tomcat 10出现卡主问题
问题描述 配置了2020版的IDE和Tomcat,但是产生了,日志打印中途,卡住了的问题,如图: 18-Aug-2021 00:46:09.763 信息 [main] org.apache.catal ...
- Python:当函数做为参数时的技巧
我们之前在<Python技法3: 匿名函数.回调函数.高阶函数>中提到,可以通过lambda表达式来为函数设置默认参数,从而修改函数的参数个数: import math def dista ...
- QShop商城--项目介绍
QShop商城-项目介绍 QShop商城,是全新推出的一款轻量级.高性能.前后端分离的电商系统,支持微信小程序,前后端源码100%开源,完美支持二次开发,让您快速搭建个性化独立商城. 技术架构:.Ne ...
- RocketMQ事务消息源码解析
RocketMQ提供了事务消息的功能,采用2PC(两阶段协议)+补偿机制(事务回查)的分布式事务功能,通过这种方式能达到分布式事务的最终一致. 一. 概述 半事务消息:指的是发送至broker但是还没 ...
- Lakehouse 还是 Warehouse?(1/2)
Onehouse 创始人/首席执行官 Vinoth Chandar 于 2022 年 3 月在奥斯汀数据委员会发表了这一重要演讲.奥斯汀数据委员会是"世界上最大的独立全栈数据会议" ...
- 《剑指offer - 题目1》
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- 基于WebSocket的modbus通信(三)- websocket和串口
WebSocket传递ModbusTCP数据包 错误纠正 上一篇还有个错误,就是客户端写数据时服务端不需要响应,但我的服务端响应了的.我选择改客户端,把写数据时接收到的响应丢弃. PrintBytes ...
- OPA Gatekeeper:Kubernetes的策略和管理
目录 一.系统环境 二.前言 三.OPA Gatekeeper简介 四.在kubernetes上安装OPA Gatekeeper 五.gatekeeper规则 5.1 使用gatekeeper禁止某些 ...
- YNOI 做题记
YNOI 做题记 偶然有一天做到了其中的一道题,于是便开始做相关的题了-- [Ynoi2015] 我回来了 - 洛谷 这之一场联考搬过来的题--于是考场上写了一个 \(O((n + m)\log^2 ...