某多多anti-content参数逆向思路

2023-12-29 17:30

本文主要是介绍某多多anti-content参数逆向思路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

某多多anti-content参数逆向思路

前言:

①仅作学习所用,不可非法利用

②网页结构的变化较多,代码的可用周期较短,仅作学习分享思路

③如有侵权,请联系我删除!!谢谢

正文

​ 最近应一些需求需要对拼多多商家后台的订单数据进行采集,订单采集接口为:

aHR0cHM6Ly9tbXMucGluZHVvZHVvLmNvbS9tYW5na2h1dC9tbXMvcmVjZW50T3JkZXJMaXN0

​ 接口除了cookie之外在请求头中还需要一个字段anti-content,且每个请求生成的值都不一样,字段值不可复用。四天时间完成从加密位置定位到还原加密,起初我是从具体的加密函数起点通过调用栈向下还原整个加密过程,增增删删1000多行代码下来还没完,实在是忍受不了了,最后参考了以为大佬的思路配合自己的理解完成了整个逆向过程。

​ 一般的我们可以在开发者工具的network中分析请求的调用栈来分析加密位置,但是大多数的时候我们一开始看调用栈都是一堆匿名调用,例如本次。对于这种情况我们可以通过XHR/fearch Breakpoints来进行初步的断点进行分析。

network中的调用栈

​ 设置完Url断点拦截之后就可以来到下图所处位置,之后通过调用栈(call stack)可以定位到本次加密点所在位置,对于加密函数定位就不多做讲解了我们直接跳到加密函数的反混淆解析。

Url断点拦截处

​ 最终定位到的加密位置在这:

断点分析

​ 可以看见它是通过new一个函数之后调用messagePack函数获取到了加密值。在控制台中执行n(“eDaA”)后可以跳转到如下位置,可以看到在这个函数中最后返回了一个At的变量,而在上面一行var At = new qt,那么我们将断点打在return At的位置继续观察。 可以发现qt的messagePack函数在一顿操作后最终是调用了Gt函数。而Gt函数则是返回了我们本次的主题,因此我们需要将Gt函数还原下来就可以了。

qt函数分析

​ 当时我也是按照这个思路进行的,但是越往下走涉及到的函数越多,检验的浏览器特征也剧增。从referrer、href、UA到鼠标的点击,屏幕大小…到最后还有tree的加密,实在是太多了最终将整个函数拷贝下来进行参数不全。将整个js代码拷贝到pycharm中格式化之后将我们所需的部分函数整体拷贝下来。改写之后放到本地使用node环境运行,其中会数次抛出异常,这个时候就需要配合在Web中打下断点,补全环境就好。

image.png

​ 最终补全的代码之后仿照上面某多多的调用方式进行调用就好。

 new (n("eDaA"))({serverTime: e}).messagePack()
调用:

​ 你可以单独开一个Node接口进行调用也可以使用execjs运行js进行调用,下面给出的是使用Node接口进行调用。具体代码就不做展示了,主要是怕死,有了思路相信各位看官也能做出来。

const express = require('express');
const bodyParser = require('body-parser');
const app = express();app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.get('/pdd_search', function (req, res) {timeStamp = new Date().getTime()let anti_result = new o()({serverTime: timeStamp}).messagePack()console.log(anti_result);res.json({anti_result: anti_result})
});const server = app.listen(8085, function () {let host = server.address().address;let port = server.address().port;console.log("应用实例,访问地址为 http://%s:%s", host, port)});

测试结果

测试结果

这篇关于某多多anti-content参数逆向思路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/550157

相关文章

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

三相直流无刷电机(BLDC)控制算法实现:BLDC有感启动算法思路分析

一枚从事路径规划算法、运动控制算法、BLDC/FOC电机控制算法、工控、物联网工程师,爱吃土豆。如有需要技术交流或者需要方案帮助、需求:以下为联系方式—V 方案1:通过霍尔传感器IO中断触发换相 1.1 整体执行思路 霍尔传感器U、V、W三相通过IO+EXIT中断的方式进行霍尔传感器数据的读取。将IO口配置为上升沿+下降沿中断触发的方式。当霍尔传感器信号发生发生信号的变化就会触发中断在中断

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文