拼刀刀店铺后台的参数anti-content逆向分析
目录
1.介绍-为什么要逆向anti-content参数
2.开始逆向js
2.1 找参数所在位置-先在控制台全局搜索参数名字
2.2 跟栈-找加密的方法
2.3 代码分析
3.环境检测
分析网址:'aHR0cHM6Ly9tbXMucGluZHVvZHVvLmNvbS9nb29kcy9nb29kc19saXN0'
1.介绍-为什么要逆向anti-content参数
用代码访问后台数据不带anti参数的话会提示“访问频繁”,所以需要逆向出这个参数
2.开始逆向js
2.1 找参数所在位置-先在控制台全局搜索参数名字
搜索出来10个结果 不算多,每个都点进去 在差不多的关键词位置打上断点先
因为它Ajax请求每个页面都要anti参数 所以我们下断点之后随便点个按钮都能用 已经断下来了,这个aa1d开头的js文件(你们的不一定叫这名),可以把其他断点取消了,现在来着重分析这个
2.2 跟栈-找加密的方法
这里是一个异步代码调用
我们把断点打到它上一层这里先
return Promise.resolve(u(t.rawFetch, d).catch((function() {}
直接f8放过去 再重新点一次 会到达上面那个断点
f11单步调试进来 会跟到这里
getCrawlerInfo: function(t) {return Promise.resolve(G((function() {var e = I.a.getInstance(t);return Promise.resolve(e.getServerTime()).then(F)}), (function() {return ""})))}
对于异步不太懂的 我这里强行演示一波 (百度小抄一下改改)
//1. Promise.resolve("111")Promise.resolve("111")
//Promise {<fulfilled>: '111'}
// [[Prototype]]: Promise
// [[PromiseState]]: "fulfilled" 这是完成的状态
// [[PromiseResult]]: "111" 这是结果//2.Promise.resolve("").then(函数())Promise.resolve("我是参数?").then(function(a){console.log("111",a);return "123"})
//111 我是参数?
//Promise {<fulfilled>: '123'}
// [[Prototype]]: Promise
// [[PromiseState]]: "fulfilled"
// [[PromiseResult]]: "123"
所以e是时间戳,f是主要函数 下断点到这 f8直接过来 再单步两次到F
要的是里面的这串代码 : new一个对象 对象传入一个包含serverTime的对象这里我也不太理解 最后messagePack肯定就是方法了。。不管他直接复制在控制台跑一下 出结果了
new (n("eDaA"))({serverTime: t
}).messagePack()
2.3 代码分析
n("eDaA") 我第一眼看这不就是个webpack吗 当时觉得还是以前的玩法 找到n方法的加载器 再复制eDaA这个模块就可以跑了。没想到跟进去发现 eDaA里面又是一个加载器和模块 第一次见到这样的 没玩过,研究了半天
eDaA导出fbeZ fbeZ又导出里面的整个webpack
所以最后我们只要fbeZ里面的webpack 跳过第一层直接取它, 因为它是第二层的 加载器不适用,需要找个通用的加载器
下面的加载器可以输出"111"就行
window=global;
!(function (e) {var i = {}, o = {index: 0}function c(t) {if (i[t])return i[t].exports;var n = i[t] = {i: t,l: !1,exports: {}};// console.log(t)return e[t].call(n.exports, n, n.exports, c),n.l = !0,n.exports}window.hliang1 = c
}
)([function(e,t,n){console.log("111")}
])
window.hliang1(0)
复制过来后 把前面列表的`[`和屁股后面的`}]`删除掉一个 因为会复制多
因为用notepad++代码格式化的问题,有一个模块会提示代码有问题
去网站重新粘贴一下这串代码到vscode(pycharm)
这样就完成了,用window.hliang1 就可以调用模块了
下面开始复制qe对象
它new 的qe对象就在模块里面啊,我不知道怎么直接new 所以新建了一个函数 然后对它改写
全部复制下来
function hliang_qe(){//复制进这里来}
(function (e, t) {}).call(this,a,b) 这种就是 把a,b传参到e,t
所以改写 匿名删除去掉,.call去掉,传参的e,t直接设置成
var e=window.hliang1(3) 还有其他地方n() 这里加载器名字改一下
t原本的作用是导出(t.exports)那我这里不要t了 直接导出改成return
如下图
复制到浏览器执行,成功出结果。但是这个代码在node.js还需要补环境和改环境。
3.环境检测
在浏览器能跑 在node.js跑不了 需要补环境。
这都啥报错啊,看不懂。 先上环境吧。
算了懒得写了。
直接告诉你们要补啥吧(光复制环境没用,还有一个暗坑我不说,哈哈。提示:node的)。
cookie和localStorage.Item传入自己的就行了 过期的也没事
window = global
document={addEventListener:function addEventListener(a,b){// console.log("addevent",a,b)return undefined},referrer:'',getElementById:function getElementById(a){console.log("getbyid",a)return "<head></head>"},cookie:''//这里传一个自己的cookie 过期了的也没事
}
var Plugins={0:{}}
navigator={webdriver:false,plugins: Plugins,languages:["zh-CN","zh"],hasOwnProperty:function hasOwnProperty(a){// console.log(a,"hasOwnProperty");if (a=="webdriver"){return false}},userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36"
}screen={availWidth:1920,availHeight:1040}
history={back:function back(){console.log("back",arguments)}
}
location={href:"https://mms.pinduoduo.com/goods/goods_list",port:""
}
chrome={}localStorage={getItem:function getItem(a){// console.log("item",arguments)if (a=="_nano_fp"){return "" //这里也传一个自己的}}
}window["chrome"]=chrome
window["location"]=location
window["navigator"]=navigator
window["history"]=history
window["document"]=document
window["screen"]=screen
window["localStorage"]=localStorageObject.defineProperty && Object.defineProperty(window, "outerHeight", {value: 1040,writable: false
});
Object.defineProperty && Object.defineProperty(window, "outerWidth", {value: 1920,writable: false
});function DeviceOrientationEvent(){console.log("DeviceOrientationEvent",arguments)
}
window["DeviceOrientationEvent"]=DeviceOrientationEvent
function DeviceMotionEvent(){console.log("DeviceMotionEvent",arguments)}window["DeviceMotionEvent"]=DeviceMotionEvent
//delete window.Buffer //e("0x3c", "anZ%")
document.getElementById.toString=function(){return 'function getElementById() { [native code] }'
}
可以了。环境+上面的代码就能跑了
{"success":true,"errorCode":1000000,"errorMsg":null,"result":{"sessionId":"e70ae011c9c64f8fbf0e70fada362385","total":0,"goods_list":[]}}
演示地址:pdd演示.mp4 - Information sharing - hl98的个人云盘 - Powered by KodExplorer
拼刀刀店铺后台的参数anti-content逆向分析相关推荐
- anti_content不难,我手把手教大家研究透拼夕夕的anti_content,请看我的逆向解析过程。拼刀刀店铺后台用到anti_content,pdd的wap网站也用到anti_content
序言 各大搜索引擎用到了爬虫技术实现网络数据的抓取,通过抓取的数据进行分析来方面我们检索想要的数据.很多电子商务平台有万级.亿级的产品数据数据,他们希望客户可以正常浏览.他们同时又防止数据 被大量的 ...
- 拼多多店铺真实评价被屏蔽的原因分析
微信千二费率官方接口接口链接 在申请退款接口中上传参数"notify_url"以开通该功能如果链接无法访问,商户将无法接收到微信通知.通知 url 必须为直接可访问的 url,不能 ...
- 唯品会app请求头参数authorization的逆向分析与算法还原
声明:本文内容仅供学习交流,严禁用于商业用途,否则由此产生的一切后果均与作者无关.如有冒犯,请联系我删除. 一.说明 app版本: v7.45.6 下载地址:aHR0cHM6Ly93d3cud2FuZ ...
- 怎么查看拼多多店铺销量?怎么查看店铺后台数据图?
我相信商家明白,店铺运营的许多方面都是相互关联的.店铺排名越高,销量就越好,其他数据就会得到改善,从而促进销量的增长,从而建立一个良性循环.简单来讲,经营拼多多店并没那么容易.除了大量的精力.时间和金 ...
- 拼多多无货源模式新玩法(采集淘宝天猫京东等平台商品上传拼多多店铺)
给大家展示一个全新的拼多多电商模式,别眨眼,别浪费时间,看完还不明白来打我! ! ! 1:无货源业务模式及收入介绍 开店后,我们将经营店铺. 我们做的是无货源模式. 我们不需要预付钱来囤货. 也就是我 ...
- 电商Sass平台-商城运营后台原型-仓储管理-订单管理-店铺运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-流量分析-电商erp后台管理-用户权限-销量分析
axure作品内容介绍:电商Sass平台-商城运营后台原型-仓储管理-订单管理-平台运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-店铺装修-门店管理-商品档案- ...
- 拼多多店铺昨天还好好的,今天突然没流量,怎么回事?
大家好,我是面兜兜,关注面兜兜每天解锁不同的店铺运营知识!今天面兜兜给大家分享的是关于拼多多店铺流量突然下降问题. 流量是每一个拼多多卖家都会关注的问题,一点店铺流量大跌商家必定着急,近期很多的商家反 ...
- 聚力优创:拼多多的店铺怎么引流?秘诀分享
在拼多多,如果产品和性价比高,就要跟上引流的推广.那么,今天聚力优创就来告诉大家拼多多店铺应该如何做推广和引流呢?操作时需要特别注意什么?相信这是很多商家都想知道的. 拼多多店铺如何促进引流? 1.使 ...
- 拼多多商品id怎么查看 拼多多店铺ID怎样看
网上开店平台有很多编号.id等可以区分商品和店铺的标志,拼多多有店铺id也有商品id,这是两个不同的概念,店铺id进入到拼多多店铺即可查询,拼多多商品id怎么查看 拼多多店铺ID怎样看,那么拼多多商品 ...
- 多多客id是什么意思_【多多情报学堂】拼多多id是什么?拼多多店铺id在哪里看?...
拼多多是一款深受大家喜爱的软件,其中每一个拼多多用户都有属于自己的ID哦,那么如何查看自己的ID呢?相信很多的拼多多用户都想知道,下面跟着拼多多生意参谋多多情报通一起来了解一下吧! 拼多多id是什么? ...
最新文章
- 陕西活性炭需求分析_20212027年中国粉末活性炭行业市场发展现状调研与投资趋势前景分析报告...
- ubuntu-14.04.2-desktop-i386.iso:ubuntu-14.04.2-desktop-i386:安装Oracle11gR2
- linux下用u盘安装xp系统安装教程,全新Linux笔记本电脑用U盘装Win7/XP系统教程
- Vue3 VSCode新建项目报错The template root requires exactly one element.
- P6091-[模板]原根
- .sh文件怎么写_typeScript 配置文件该怎么写?
- 【干货】普华永道:新形势下,企业如何进行数字化转型.pdf(附下载链接)
- 查看操作系统和处理器的位数
- 《数学之美》—简单之美-布尔代数和搜索引擎
- python用户输出怎么命名变量_python变量及用户交互,用户名格式化输出
- ps2021没法用神经元滤镜,ps2021神经滤镜不能下载
- java 上下文是什么意思_什么是执行上下文
- 2015最好用的PHP开源建站系统
- 大话spring~spring那些事
- 组合(Combination)
- 新浪微博开发平台试用
- 阿里云视频服务之点播服务
- AI+工业互联网:百度AI专利讲述“中国智造”
- Nero8直接把APE带CUE映像文件刻录CD方法(转帖)
- jQuery 入门教程
热门文章
- 梦殇 chapter four
- 华为ensp cloud(云)中没有网卡,缺失网卡,网卡地址错误解决方法
- 2020年度总结,展望2021
- empty怎么发音_英语单词empty怎么读,empty的音标是什么,empty是什么意思 - 音标网...
- 基本知识 100052
- 豆豆趣事[2014年04月]
- No Target connected Target DLL has been cancelled(电压问题记录)
- 用python帮别人写了个文字识别程序
- conda 安装完了之后安装torch总是失败
- Dreamweaver CS6破解教程[序列号+破解补丁]