赞
踩
1.仅供学习参考,不可用于非法用途
2.如果有侵权,请及时联系我删除!!!
目录
2.搜索加密字段anti_content,打断点调试,找到解密函数
下划边框条,找到接口(v3?pdduid=0....)文件为接口
观察两个加载出来的js文件,发现加密字段为anti_content
在这里断住了,并且发现,好像找到了我们要找的加密参数也出来了。
我们继续观察,发现加密参数是在 我们断住之前产生的,所以我们应该往上走一步,在上面断住。
千万不要觉得是在e.next那里,那里只是得到一个参数而已。现在我们找到了是在哪儿生成出来的加密参数,我们就可以接着往下面继续走,攻入敌方内部。
点击往下面慢慢调试,一定要仔细,慢慢调试。
你是不是也调试在这了,你继续往下面调试就会发现有点不对了,你可以先注意下(ne)
后面通过调试,经过了下面两个函数,经过下面两个函数之后,就进入了无休止的调用,是因为就是通过这个两个函数调用出去的。
而$()函数对比ne()函数,可以在return打上断点,发现ne()返回的结果就是我们想要的加密数据
找到结果就可以开始写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('<!DOCTYPE html><p>hello world</p>>');
- window = dom.window
- document = window.document
- Element = window.Element
- XMLHttpRequest = window.XMLHttpRequest
另起一个函数用于返回加密结果,然后打印得到结果。
- 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)
到此就结束了,希望能对大家有用,谢谢!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。