python爬虫二十四:js逆向破解(一)

1、环境搭建

通过python代码模拟js去生成加密数据完成数据破解,需要用到PyExecJS模块
①安装模块pip install pyexecjs通过模块的方法来读取js代码,也可以用js2py(不更新维护了)、selenium(driver.wxecute_script(js代码))去执行js文件,这里以pyexecjs为例
②python调用js代码的时候需要nodejs的环境(安装步骤如下)
nodejs下载地址:点解对应版本下载,我选择64位msi
在这里插入图片描述
选择msi它可以自动配置环境变量,不用手动配置环境变量,选择zip需要先解压,后手动配置path环境变量(增加nodejs配置)
在这里插入图片描述
无脑next按照默认选项操作,直到finish,通过命令行来验证是否成功安装,按ctrl+c退出node交互模式
在这里插入图片描述
③写一个js文件通过python来读取它的数据初步进入js逆向的学习
在这里插入图片描述

2、浏览器知识点补充

浏览器抓包工具在什么是爬虫中有过介绍,这里再补充一点常用小技巧,框中的代表保留日志信息,比如一些ajax请求,如果不勾选它,一旦页面刷新,那么他不会保留之前的信息,不利于爬取数据查看api信息
在这里插入图片描述
键盘按住shift鼠标悬停再对应的文件之上,可以查看到他们之间对应的层级依赖关系会以颜色显示
在这里插入图片描述

3、哈希类JS加密(一般处理登录过程中的加密)

3.1MD5:模拟登录一品威客

先找到加密的数据是哪些数据再通过search搜索加密文件是再那个js文件里面,然后通过断点调试找到数据加密的方法,将js文件复制进入pycharm,通过excejs引入js进行解密破解该加密数据,进行模拟登录。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2有道词典

有道词典也是一个post请求,通过对比翻译两个不同单词form_data表单携带不同的数据来比较出哪些数据是变化的比较发现i、salt、sign、its发生变化,下图没有写全,自己比较,将不同的加密参数模拟出来传入通过requests获得结果,js代码自己去分析,或者私聊我,py代码我放下面
在这里插入图片描述

from day01 import get_js_function
import requests
dic = get_js_function('youdao.js', 'youdao', 'ordinary')
dic['i'] = 'ordinary'
dic['from'] = 'AUTO'
dic['to'] = 'AUTO'
dic['smartresult'] = 'dict'
dic['client'] = 'fanyideskweb'
dic['doctype'] = 'json'
dic['version'] = '2.1'
dic['keyfrom'] = 'fanyi.web'
dic['action'] = 'FY_BY_CLICKBUTTION'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36','Referer': 'http://fanyi.youdao.com/','Host': 'fanyi.youdao.com','Cookie': 'OUTFOX_SEARCH_USER_ID=-1063838233@10.169.0.82; JSESSIONID=aaa6LVCQlOvoh7aoDIXux; OUTFOX_SEARCH_USER_ID_NCOO=518038871.14423877; ___rl__test__cookies=1602854040845'
}
r = requests.post('http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule', data=dic, headers=header)
print(r.json())

3.3模拟登录唯品会

通过分析发现它的密码是md5加密,search密码,找到对用的js文件发现他是匿名函数,将他改写,通过execjs将js转换为python可以获得加密的密码,携带data模拟登录唯品会
在这里插入图片描述

from day01 import get_js_function
import requests
pwd = get_js_function('weipin.js','md5','666666')
data = {
'loginName': 18329520409,
'password': pwd
}
url = 'https://www.epwk.com/index.php?do=login'
res = requests.post(url,data=data).json()
print(res)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/70360.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于ref哪怕在$nextTick()中有时候获取不到节点元素的问题。(较为诡异的bug)

我的需求是用element-ui的messagebox,来实现验证码接受的功能。并将cancel按钮换成刷新功能,在beforeClose中实现验证码刷新。元素都是在$msgbox中生成的,下面是最开始出错的核心代码。 let result await this.$API.reqCaptchaImg();this.ca…

微信小程序实现分页加载,触底加载下一页,滚动加载

这里我就不写wxml了,就是一个列表循环,直接看js代码逻辑,注释都写在代码后面了,这个方法可以实现无限滚动加载,直到加载完最后一条数据,也可以实现触底没数据后,二次触底可以从新加载刷新&#…

某地刑侦大队对涉及6个嫌疑人的一桩疑案进行分析

(1)A、B 至少有一人作案; (2)A、E、F 三人中至少有两人参与作案; (3)A、D 不可能是同案犯; (4)B、C 或同时作案,或与本案无关&#xf…

今天,微软重新发明搜索引擎:首款ChatGPT搜索来了

从现在起,比 ChatGPT 更强大的语言模型直接进入了你的浏览器。 一夜之间,全球最大的科技公司仿佛都回到了自己年轻时的样子。 在谷歌宣布「实验性对话式人工智能服务」Bard 之后仅 24 小时,北京时间 2 月 8 日凌晨两点,微软发布了…

嵌入式工程师的入门须知----亲测

嵌入式工程师的学习路线----亲测 本文概述入门之前必做竭尽所能了解嵌入式技术与职业规划正确认识自己 我眼中的嵌入式技术我眼中的职业规划我的入门之路总结 本文概述 这是一篇关于想要踏进嵌入式技术之路与相关职业规划的建议性文档,文中观点仅限于个人对于嵌入式…

嵌入式软件工程师面试必备技能

随着当前信息化网络技术在各行业的快速普及,嵌入式系统在技术领域呈现了前所未有的发展趋势,作为一个正在崛起的热门IT行业,人才的匮乏已经成为了嵌入式开发行业发展过程中呈现出的一种现象。据相关部门统计,我国目前嵌入式软件工…

电子通信、嵌入式工程师的面试指南

作者:火哥 授权转载自公众号嵌入式老鸟的职场之道(id:ict_embedded),火哥也是我们的校园代理 火哥自从校招找工作到现在,面试过不下50家公司,拿到过不少于30个offer。虽然不能说百战百胜,但是也还算有着较…

嵌入式软件工程师培训:提升技能、实现卓越

如果您对嵌入式培训感兴趣,以下是一些建议和关键点,可以帮助您进行嵌入式培训: 培训目标:明确确定您的嵌入式培训目标。是为了提升员工的技能水平,使他们能够承担更高级别的嵌入式开发工作,还是为了向非嵌入…

嵌入式工程师常用的软件工具推荐

前言:常言道:工欲善其事,必先利其器。作为一名合格的嵌入式工程师,日常可能需要接触和处理各种奇奇怪怪的问题,这时候一款高适配性的工具将会令工作效率大大提升。作者根据个人的实际使用情况与粉丝的客观感受&#xf…

软考中级-嵌入式系统设计师(一)

第一章 硬件基础 1、嵌入式微处理器结构 ARM采用哈佛结构,是一种RISC体系结构的微处理器。 DSP(数字信号处理技术)采用哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的指令,可以用…

嵌入式软件工程师学习路线图

人们去学习嵌入式的话,最后也是想成为嵌入式软件工程师的,这对于学习嵌入式学员来说还是有些难度的,所以这回小编就给大家介绍下嵌入式软件工程师学习路线图吧。 点击获取1V1嵌入式学习规划,现在还送100G精选学习资料。&#xff0…

嵌入式工程师的『2022 || 2023』

因为一些个人关系,2022年初我从北京回到了石家庄。在找工作,包括后续的研发工作中,不同地点的经历在对比中我逐渐总结出了一些经验。关于“人”方面的感悟我就不赘述了,下面主要在这里总结一些找工作,做工作的经验&…

嵌入式工程师必备开发工具

其实入行也有2年了,这两年用到了不少的开发工具,我猜大家很多也都用到过。这里主要是讲一下用到那些工具,安装自己去找教程吧!毕竟安装这些软件可比开发容易多了! 1.KEIL5 嵌入式产品开发写代码用到的工具。STM32相关…

送5本新出版《趣学算法(第2版)》

文末赠书 学大家在学习算法时遇到的各种困难:看不懂、题目刷了忘然后忘了刷、大部头算法书啃不动。甚至不少人学算法都开始怀疑自己是不是太笨不适合编程了…… 如何轻松学算法? 今天给大家推荐一本《趣学算法(第2版)》。这本书第…

Python趣味代码整合之提升学生编程兴趣

这篇文章主要是整合一些趣味代码,一方面自己对这些内容比较感兴趣,另一方面希望这些代码能提升学生的编程兴趣,其主旨是代码能在我的电脑上运行并有些趣味。 参考资料: 知乎 - 可以用 Python 编程…

趣学算法第二次

14天阅读挑战赛一、一棋盘的麦子 计算一棋盘的麦子&#xff0c;python代码如下&#xff1a; import matplotlib.pyplot as plt s[] def cal(n):sum0i0while i<n:sumsumpow(2,i)i1s.append(sum)return s nint(input("请输入一个数&#xff1a;")) xrange(n1) for …

《趣学算法》阅读笔记(二)

14天阅读挑战赛 话不多说&#xff0c;我们接着上篇文章《趣学算法》阅读笔记&#xff08;一&#xff09;&#xff0c;继续总结学习 1. 第一章 算法之美 1.3 哥德巴赫猜想的证明 哥德巴赫猜想&#xff1a;任一大于2的偶数&#xff0c;都可表示成两个素数之和。 验证&#xff1…

趣学python编程答案_《趣学Python编程》习题总结

上周买了本书叫《趣学Python编程》&#xff08;英文名&#xff1a;Python for kids&#xff09;&#xff0c;昨天看完后把书后面的题都做了下。由于第1、2章没有习题&#xff0c;第13章及之后都是描写实例的章节&#xff0c;因此这个总结性的文章中只包含了第3-12章的习题答案。…

小鹅通课程下载(一)

【需求】 花钱买了小鹅通付费课程&#xff0c;想要下载到本地观看或者存档&#xff1f; 【问题】 直接下载视频会有aes-256加密&#xff0c;要自己通过m3u8找密钥用openssl解码 【解决方案】 &#xff08;仅用于windows系统&#xff09; 小鹅通exe运行工具&#xff0c;双击打…

GPT4官方联网功能和插件功能

chatgpt免费入口 http://chat.xutongbao.top https://mbd.baidu.com/newspage/data/landingsuper?context%7B%22nid%22%3A%22news_9764161741531547244%22%7D&n_type-1&p_from-1