JS逆向-1-逆向开发环境配置和网络协议基础

JS逆向-1-逆向开发环境配置和网络协议基础

一、网络协议&抓包原理

1.1 OSI 概念模型

《计算机网络》一书中对每一层都有深入的讲解(以下为粗解)。

OSI七层概念模型

  • 应用层:是用户与计算机网络的交互接口。主要解决业务问题。就像你使用的各种软件应用程序(例如浏览器、电子邮件客户端),它直接提供你所需的服务和数据。
  • 表示层:负责数据的翻译、加密和压缩。就像翻译器将一种语言转换成另一种语言,或对信息进行加密保护隐私。
  • 会话层:会话层负责建立、管理和终止应用程序之间的对话。就像电话客服会管理你的通话,确保你能和客服人员顺利交谈,且对话能正常结束。
  • 传输层:传输层负责在两台设备之间可靠传输数据。就像快递服务确保你的包裹完整地从你的家送到另一座城市的朋友家,提供跟踪和确认服务。
  • 网络层:网络层负责在不同网络之间传输数据包,并选择最佳路径。就像导航系统会选择最快的路线,把你从一个城市带到另一个城市。
  • 数据链路层:数据链路层负责将比特组织成帧,并在同一网络中进行数据传输和错误检测。就像邮差把信件装进信封,并确保信件在同一个小区内的传送是正确的。
  • 物理层:物理层负责在设备之间传输原始的比特流(0和1)。它就像电线和灯泡一样,传输和接收电信号或光信号,不关心这些信号的具体内容。
总结:
  • 下三层是通信子网,为了联网而附加的通信设备,完成数据的传输功能;
  • 高三层统称资源子网,他相当于计算机系统,完成数据的处理等功能;
  • 传输层承上启下;
背诵口诀:

物数网传会表应。

1.2 TCP/IP 模型

TCP/IP 模型

  • 该模型与OSI七层模型唯一的区别就是,OSI的上三层在这个模型中,就是变成了一层应用层而已。
  • 爬虫中,关注最多的就是应用层、传输层和网络层。物理层和数据链路层基本接触不到。

1.3 HTTP 请求的经典场景

当一个浏览器发起一个http请求的时候到底发生了什么?

举例,访问http://www.baidu.com的过程如下:

  1. 对http://www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址。
  2. 根据这个 IP,找到对应的服务器,这里是负载均衡器IP,经过 lvs、nginx,转发(负载均衡算法)到实际的应用服务器。
  3. 发起 TCP 的三次握手,建立 TCP 连接后发送请求数据。
  4. 这个数据的发送要经过网络的TCP/IP模型,从应用层、传输层、网络层、数据链路层和物理层。
  5. 服务器响应 HTTP 请求,浏览器得到 HTML 代码。
  6. 浏览器解析 HTML 代码,并请求 HTML 代码中的资源(如 js、css、image 等)。
  7. 浏览器对页面进行渲染呈现给用户
浏览器负责的工作

浏览器工作

1.4 HTTPS

HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

1.5 TCP协议的三次握手和四次挥手

在这里插入图片描述

1.6 报文在抓包的时候是如何产生的

在这里插入图片描述

  • 这个图就非常详细的介绍了报文是如何产生的以及数据是如何转化的。
  • 理解一下的话就跟你网购一件商品一样:1. 你从淘宝上看上了一双鞋子并下单(你打开浏览器输入一个网址并按下了回车);2. 商家找到这双鞋子(服务器找到你要访问的资源);3. 商家开始打包,鞋盒打包(应用层封包)4. 快递员打包(传输层打包);5. 快递站把所有快递扔到一个大麻袋里(网络层、数据链路层打包);6. 装车运输(物理层打包并顺着网线传输数据);7. 反向再来一遍直到你打开鞋盒看到鞋子(本地客户端收到数据之后开始解包,知道你肉眼可见)。举的例子不太好,但是差不多就是这么个意思哈。

抓包工具

  • fiddler Windows平台专用抓包软件
  • charles macOS 平台下最好用的抓包分析工具之一
  • anyproxy 阿里巴巴开源的 HTTP 抓包工具,基于 NodeJS 实现,可以进行二次开发
  • Mitmproxy 基于 Python,支持 SSL 的抓包工具。可以使用python代码控制(爬虫的一些很骚的操作都是用该软件实现)
  • Wireshark 相对更加底层,更加古老的抓包工具,可以直接从网卡角度抓到包。这个工具不适合于PC爬虫领域(PC 99.999%都是http协议【也就是应用层】)

抓包软件的原理

抓包原理

  • 结论:在TCP/IP模型中,Fiddler只能抓到应用层的包。如果想要看到 TCP/UDP、IP 甚至于 mac地址相关的报文,则需要更换抓包工具。这也就是为什么有很多数据包无法被Fiddler/Charles 捕获到的原因

小结

  1. OSI与TCP/IP 原理
  2. “三次握手”与“四次挥手”
  3. Http协议原理
  4. 抓包工具原理
  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 为了进行 PythonJS逆向,你需要安装 Python 和 Node.js 环境,并安装相关的工具和库,如 PyV8、Selenium、Requests 等。此外,你还需要了解相关的编程语言和技术知识。 ### 回答2: 要进行Python和JavaScript的逆向工程,需要配置以下环境: 1. Python环境:首先,需要安装Python解释器。可以从Python官方网站下载并安装Python的最新版本。安装完成后,可以通过在终端或命令提示符中输入"python"命令,来验证Python是否成功安装。同时,还需要安装相关的Python库和工具,如requests、beautifulsoup4等,用于编写和执行逆向相关的Python脚本。 2. JavaScript解析环境:对于JavaScript逆向工程,需要一个JavaScript解析环境,用于执行JavaScript代码。可以使用现代的Web浏览器,如Chrome、Firefox等,它们内置了JavaScript引擎。另外,还可以使用Node.js平台,它提供了一个独立的JavaScript运行环境,使得能够在服务器端执行JavaScript代码。需要根据个人需要选择合适的JavaScript解析环境。 3. 开发调试工具:为了提高开发效率和便于调试,可以使用一些开发调试工具。例如,在Python中,可以使用PyCharm等集成开发环境(IDE)进行开发和调试。而在JavaScript中,浏览器自带的开发者工具(如Chrome开发者工具)可以用于调试JavaScript代码。 4. 学习资源:逆向工程是一门较为复杂的技术领域,需要不断学习和积累经验。可以通过在线教程、博客、论坛等途径学习有关Python和JavaScript逆向的知识和技巧。此外,还可以阅读相关的书籍和参加培训课程,以获得更深入的理解和实践经验。 总之,配置Python和JavaScript逆向环境需要安装相关的软件和库,并选择合适的开发调试工具。此外,持续学习和积累经验是提高逆向技术水平的关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘飞凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值