目录

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逆向分析相关推荐

  1. anti_content不难,我手把手教大家研究透拼夕夕的anti_content,请看我的逆向解析过程。拼刀刀店铺后台用到anti_content,pdd的wap网站也用到anti_content

     序言 各大搜索引擎用到了爬虫技术实现网络数据的抓取,通过抓取的数据进行分析来方面我们检索想要的数据.很多电子商务平台有万级.亿级的产品数据数据,他们希望客户可以正常浏览.他们同时又防止数据 被大量的 ...

  2. 拼多多店铺真实评价被屏蔽的原因分析

    微信千二费率官方接口接口链接 在申请退款接口中上传参数"notify_url"以开通该功能如果链接无法访问,商户将无法接收到微信通知.通知 url 必须为直接可访问的 url,不能 ...

  3. 唯品会app请求头参数authorization的逆向分析与算法还原

    声明:本文内容仅供学习交流,严禁用于商业用途,否则由此产生的一切后果均与作者无关.如有冒犯,请联系我删除. 一.说明 app版本: v7.45.6 下载地址:aHR0cHM6Ly93d3cud2FuZ ...

  4. 怎么查看拼多多店铺销量?怎么查看店铺后台数据图?

    我相信商家明白,店铺运营的许多方面都是相互关联的.店铺排名越高,销量就越好,其他数据就会得到改善,从而促进销量的增长,从而建立一个良性循环.简单来讲,经营拼多多店并没那么容易.除了大量的精力.时间和金 ...

  5. 拼多多无货源模式新玩法(采集淘宝天猫京东等平台商品上传拼多多店铺)

    给大家展示一个全新的拼多多电商模式,别眨眼,别浪费时间,看完还不明白来打我! ! ! 1:无货源业务模式及收入介绍 开店后,我们将经营店铺. 我们做的是无货源模式. 我们不需要预付钱来囤货. 也就是我 ...

  6. 电商Sass平台-商城运营后台原型-仓储管理-订单管理-店铺运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-流量分析-电商erp后台管理-用户权限-销量分析

    axure作品内容介绍:电商Sass平台-商城运营后台原型-仓储管理-订单管理-平台运营-采购管理-数据分析-交易分析-留存分析-客户管理-用户运营-围栏管理-商品管理-店铺装修-门店管理-商品档案- ...

  7. 拼多多店铺昨天还好好的,今天突然没流量,怎么回事?

    大家好,我是面兜兜,关注面兜兜每天解锁不同的店铺运营知识!今天面兜兜给大家分享的是关于拼多多店铺流量突然下降问题. 流量是每一个拼多多卖家都会关注的问题,一点店铺流量大跌商家必定着急,近期很多的商家反 ...

  8. 聚力优创:拼多多的店铺怎么引流?秘诀分享

    在拼多多,如果产品和性价比高,就要跟上引流的推广.那么,今天聚力优创就来告诉大家拼多多店铺应该如何做推广和引流呢?操作时需要特别注意什么?相信这是很多商家都想知道的. 拼多多店铺如何促进引流? 1.使 ...

  9. 拼多多商品id怎么查看 拼多多店铺ID怎样看

    网上开店平台有很多编号.id等可以区分商品和店铺的标志,拼多多有店铺id也有商品id,这是两个不同的概念,店铺id进入到拼多多店铺即可查询,拼多多商品id怎么查看 拼多多店铺ID怎样看,那么拼多多商品 ...

  10. 多多客id是什么意思_【多多情报学堂】拼多多id是什么?拼多多店铺id在哪里看?...

    拼多多是一款深受大家喜爱的软件,其中每一个拼多多用户都有属于自己的ID哦,那么如何查看自己的ID呢?相信很多的拼多多用户都想知道,下面跟着拼多多生意参谋多多情报通一起来了解一下吧! 拼多多id是什么? ...

最新文章

  1. 陕西活性炭需求分析_20212027年中国粉末活性炭行业市场发展现状调研与投资趋势前景分析报告...
  2. ubuntu-14.04.2-desktop-i386.iso:ubuntu-14.04.2-desktop-i386:安装Oracle11gR2
  3. linux下用u盘安装xp系统安装教程,全新Linux笔记本电脑用U盘装Win7/XP系统教程
  4. Vue3 VSCode新建项目报错The template root requires exactly one element.
  5. P6091-[模板]原根
  6. .sh文件怎么写_typeScript 配置文件该怎么写?
  7. 【干货】普华永道:新形势下,企业如何进行数字化转型.pdf(附下载链接)
  8. 查看操作系统和处理器的位数
  9. 《数学之美》—简单之美-布尔代数和搜索引擎
  10. python用户输出怎么命名变量_python变量及用户交互,用户名格式化输出
  11. ps2021没法用神经元滤镜,ps2021神经滤镜不能下载
  12. java 上下文是什么意思_什么是执行上下文
  13. 2015最好用的PHP开源建站系统
  14. 大话spring~spring那些事
  15. 组合(Combination)
  16. 新浪微博开发平台试用
  17. 阿里云视频服务之点播服务
  18. AI+工业互联网:百度AI专利讲述“中国智造”
  19. Nero8直接把APE带CUE映像文件刻录CD方法(转帖)
  20. jQuery 入门教程

热门文章

  1. 梦殇 chapter four
  2. 华为ensp cloud(云)中没有网卡,缺失网卡,网卡地址错误解决方法
  3. 2020年度总结,展望2021
  4. empty怎么发音_英语单词empty怎么读,empty的音标是什么,empty是什么意思 - 音标网...
  5. 基本知识 100052
  6. 豆豆趣事[2014年04月]
  7. No Target connected Target DLL has been cancelled(电压问题记录)
  8. 用python帮别人写了个文字识别程序
  9. conda 安装完了之后安装torch总是失败
  10. Dreamweaver CS6破解教程[序列号+破解补丁]