前言

1.仅供学习参考,不可用于非法用途

2.如果有侵权,请及时联系我删除!!!

目录

前言

1.找接口,找到加密字段

2.搜索加密字段anti_content,打断点调试,找到解密函数

3.编辑js文件

4.编写Python代码得到最终想获取的数据

1.找接口,找到加密字段

下划边框条,找到接口(v3?pdduid=0....)文件为接口

观察两个加载出来的js文件,发现加密字段为anti_content

2.搜索加密字段anti_content,打断点调试,找到解密函数

在这里断住了,并且发现,好像找到了我们要找的加密参数也出来了。

我们继续观察,发现加密参数是在 我们断住之前产生的,所以我们应该往上走一步,在上面断住。

千万不要觉得是在e.next那里,那里只是得到一个参数而已。现在我们找到了是在哪儿生成出来的加密参数,我们就可以接着往下面继续走,攻入敌方内部。

点击往下面慢慢调试,一定要仔细,慢慢调试。

你是不是也调试在这了,你继续往下面调试就会发现有点不对了,你可以先注意下(ne)

后面通过调试,经过了下面两个函数,经过下面两个函数之后,就进入了无休止的调用,是因为就是通过这个两个函数调用出去的。

而$()函数对比ne()函数,可以在return打上断点,发现ne()返回的结果就是我们想要的加密数据

找到结果就可以开始写js文件,进行逆向

3.编辑js文件

在调试过程中,发现都是在一个文件里面运行的,我们可以直接把这整个文件复制粘贴,这样比较快,并且也不需要你慢慢的补代码,后面只需要补一个环境就行了。

把这些大函数都可以折叠起来,方便后面扣取。

我们可以Ctrl+f,进行搜索我们刚才能得到加密数据的函数function ne(),找到它是在哪个大函数李里面,然后进行扣取

我们看到,t跟n这两个参数都没有被用到,所以可以直接去掉,我们再在原文中打上断点,看看e给的参数是什么。

可以看到e就是个空{}

在经过处理下,自定义一下扣取的fbeZ: function(e, t, n),后面可以更好的得到数据

是不是从这儿就好看出来,这就是个典型的webpack

现在我们就定义一个全局变量var ne_(名字自取名,好记就行),用于取出加密数据

然后在函数里面声明一下ne_等于什么,我们一层一层的找,能得到加密数据的函数ne()在那个函数的下面,把函数都折叠起来,找。

找到后我们就可以为 ne_ 赋值

千万不要写成ne_=ne(),这样就调用了ne()这个函数了

最后在js代码顶部补上环境就行了

const jsdom = require('jsdom')

const {JSDOM} = jsdom

const dom = new JSDOM('

hello world

>');

window = dom.window

document = window.document

Element = window.Element

XMLHttpRequest = window.XMLHttpRequest

另起一个函数用于返回加密结果,然后打印得到结果。

4.编写Python代码得到最终想获取的数据

import requests

from urllib import parse

import execjs

with open('拼多多.js', 'r', encoding="utf-8") as f:

file = f.read()

anti_content = execjs.compile(file).call('result')

url = "https://mobile.yangkeduo.com/proxy/api/api/alexa/cells/hub/v3?"

headers = {

"Cookie": "api_uid=Ckx63GVHr0GF/ABrwQKpAg==; _nano_fp=XpEblpgbn5mYX0TanT_4bYoI3guR1vZkL2i8Vwh4; webp=1; jrpl=vrKEaORHUnRtmhcu9DS3joB9a98RqLy3; njrpl=vrKEaORHUnRtmhcu9DS3joB9a98RqLy3; dilx=u7U2nINp9B12AnMsIbifN; pdd_vds=gaLLNOtIObLbNEbGIQNiiPoQQNmPyiOPmLiLOQPbbOOEnmLEiNitoEQPmQoP",

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"

}

data = {

"pdduid": 0,

"is_back": 1,

"platform": "H5",

"page_sn": 10002,

"page_id": "index_list.html",

"engine_version": 3.0,

"offset": 10,

"count": 20,

"list_id": "rfjydmbtpa",

"anti_content": f"{anti_content}",

}

data = parse.urlencode(data)

url = url+data

reponse = requests.request("GET", url=url, headers=headers)

reponse.encoding = "utf-8"

print(reponse.text)

到此就结束了,希望能对大家有用,谢谢!!!

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: