基于scapy uds协议包实践

一、UDS协议说明:

源自百度:UDS协议(Unified Diagnostic Services,统一诊断服务)是诊断服务的规范化标准,比如读取故障码应该向ecu发什么指令,读数据流又发什么指令。OBD是关注车辆售后实时排放的理念形成的行业规范,而UDS是诊断服务的统一化规范,只是应用层的规范。

UDS与OBD最大的区别就在于“Unified”上,它是面向整车所有ECU(电控单元)的,而OBD是面向排放系统ECU的。单说UDS而言,它只是一个应用层协议(ISO14229-1),所以它既可以在CAN线上实现,甚至也能在Ethernet上实现。并且UDS提供的是一个诊断服务的基本框架,主机厂和零部件供应商可以根据实际情况选择实现其中的一部分或是自定义出一些私有化的诊断服务来,所以基于UDS协议的诊断又常常被称为增强型诊断,UDS不是法规要求的,没有统一实现标准,其优势在于方便生产线检测设备的开发,同时更大的方便了售后维修保养和车联网的功能实现

SO14229-1协议定义了6类功能,26种服务,分别是:

1)诊断和通信管理功能单元,包括10,11,27,28,3E,83,84,85,86,87共10种服务;

2)数据传输功能单元,包括22,23,24,2A,2C,2E,3D共7种服务;

3)存储数据传输功能单元,包括14,19共2种服务;

4)输入输出控制功能单元,包括2F服务;

5)例行程序功能单元,包括31服务;

6)上传下载控制功能单元,包括34,35,36,37,38共5种服务

本文旨在通过scapy框架组装UDS中14229-1的应用层常用数据服务,对14229-1的内容做更深入理解。

  1. 服务数据包实现

1, 10 diagnosticSession服务组包实现

基于PythonScapy是一个功能强大的网络数据操作库,它可以用来创建、发送、捕获和分析网络数据。通过使用Scapy,我们可以很方便地设计一个协议编辑器。 协议编辑器是一种用于创建、编辑和分析特定协议的工具。它通常用于开发和测试网络协议,以确保其可靠性和安全性。 基于Scapy协议编辑器可以实现以下功能: 1. 协议定义:使用Scapy的Packet类,可以轻松定义特定协议的数据结构。我们可以按照协议规范定义数据的各个字段、类型和长度等。 2. 数据编辑:通过使用Scapy的功能,可以对数据的各个字段进行编辑。我们可以修改数据的源地址、目的地址、协议版本等。 3. 数据生成:利用Scapy的Packet类,可以方便地生成符合自定义协议的数据。只需编写相应的代码,设置字段值,并使用Scapy提供的函数将数据发送到网络上。 4. 数据捕获:利用Scapy的sniff函数,可以捕获并分析网络中的数据。我们可以根据自己的需求设置过滤条件,只捕获符合协议规范的数据。 5. 数据分析:通过Scapy强大的分析功能,可以对捕获到的数据进行深入分析。我们可以查看数据的各个字段、数据长度、校验和等信息,以及协议中定义的特定值。 总之,基于PythonScapy可以作为一个强大的工具,帮助我们设计、创建和测试各种网络协议。通过使用Scapy,我们可以方便地定义协议的数据结构,编辑和生成符合协议的数据,以及对网络数据进行捕获和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值