当前位置:   article > 正文

某多多逆向(webpack)_拼多多逆向

拼多多逆向
前言

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代码顶部补上环境就行了

  1. const jsdom = require('jsdom')
  2. const {JSDOM} = jsdom
  3. const dom = new JSDOM('<!DOCTYPE html><p>hello world</p>>');
  4. window = dom.window
  5. document = window.document
  6. Element = window.Element
  7. XMLHttpRequest = window.XMLHttpRequest

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

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

  1. import requests
  2. from urllib import parse
  3. import execjs
  4. with open('拼多多.js', 'r', encoding="utf-8") as f:
  5. file = f.read()
  6. anti_content = execjs.compile(file).call('result')
  7. url = "https://mobile.yangkeduo.com/proxy/api/api/alexa/cells/hub/v3?"
  8. headers = {
  9. "Cookie": "api_uid=Ckx63GVHr0GF/ABrwQKpAg==; _nano_fp=XpEblpgbn5mYX0TanT_4bYoI3guR1vZkL2i8Vwh4; webp=1; jrpl=vrKEaORHUnRtmhcu9DS3joB9a98RqLy3; njrpl=vrKEaORHUnRtmhcu9DS3joB9a98RqLy3; dilx=u7U2nINp9B12AnMsIbifN; pdd_vds=gaLLNOtIObLbNEbGIQNiiPoQQNmPyiOPmLiLOQPbbOOEnmLEiNitoEQPmQoP",
  10. "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"
  11. }
  12. data = {
  13. "pdduid": 0,
  14. "is_back": 1,
  15. "platform": "H5",
  16. "page_sn": 10002,
  17. "page_id": "index_list.html",
  18. "engine_version": 3.0,
  19. "offset": 10,
  20. "count": 20,
  21. "list_id": "rfjydmbtpa",
  22. "anti_content": f"{anti_content}",
  23. }
  24. data = parse.urlencode(data)
  25. url = url+data
  26. reponse = requests.request("GET", url=url, headers=headers)
  27. reponse.encoding = "utf-8"
  28. print(reponse.text)

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/418412
推荐阅读
相关标签
  

闽ICP备14008679号