某手创作服务 __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用在前后端传输,在 ...
随机推荐
- vscode关于json文件添加注释报错处理
- pageoffice6 版本在线打开word 文件,实现多用户同时编辑
总体来说,各种Web系统中的Word文档在线处理大体可以分为以下四种流转处理方式: A用户编辑完,流转给B用户修改,再流转给C用户修改,直到最后.每个用户都是针对全文修改的,如果需要在这一篇文档中能区 ...
- linux基础之awk命令详解
一 awk主要是用来对指定对文本或者命令的输出逐行处理和分析的,下面来简单的看一下awk用法,方便以后需要使用的时候在回头看 1.1 基础的用法 [root@wxm ~]# cat test 1 ...
- PVT:特征金字塔在Vision Transormer的首次应用,又快又好 | ICCV 2021
论文设计了用于密集预测任务的纯Transformer主干网络PVT,包含渐进收缩的特征金字塔结构和spatial-reduction attention层,能够在有限的计算资源和内存资源下获得高分辨率 ...
- C#复杂类型转为QueryString
使用 visual studio 创建 webapi 项目,并添加 DefaultController.cs,代码如下 public class DefaultController : ApiCont ...
- Stable Diffusion WebUI详细使用指南
Stable Diffusion WebUI(AUTOMATIC1111,简称A1111)是一个为高级用户设计的图形用户界面(GUI),它提供了丰富的功能和灵活性,以满足复杂和高级的图像生成需求.由于 ...
- uniapp 页面跳转传值和接收
前端面试题库地址:https://www.yuque.com/sxd_panda/sdluga 1.首先介绍最原始的跳转方法,类似于html中的a标签,不过在uniapp中需要将a标签换成 <n ...
- 剑指Offer-53.表示数值的字符串(C++/Java)
题目: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.14 ...
- springboot项目中一些小技巧
一.使用命令创建maven工程 1.例如我们想在IDEA的工作空间目录下E:\Gitee\springboot,创建maven项目,首先先进入该目录下 2.去掉原来的目录,输入cmd,然后回车,进入命 ...
- ansible-role角色
官网文档 https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html 为什么要用role 之前你部署的n ...