协议分析与还原自学及入门指南。

有部分朋友给我发消息,说对协议还原很感兴趣,但苦于没人指导,希望得到我的帮助,问我如何进行协议分析的学习。

这篇文章从初学者的角度,编列了一个学习指南,希望能对协议分析的朋友朋友们有所帮助。

01

学习指南

对协议分析而言,打交道的是网络流量,因此,对网络协议的了解是一切的基础。学习指南第一部分,将告诉你需要学习的网络协议知识:

1、TCP/IP协议的学习

对接受过高等教育的朋友而言,TCP/IP协议应该不陌生,这里提出来,是为了让大家对一些重点知识进行确认。

学习的重点如下:

掌握IP、TCP、UDP这些协议的区别和联系;

理解协议的分层机制和各层之间的关系;

熟悉协议的交互流程,如TCP三次握手等;

了解IP地址和端口的功能和作用。

2、应用层协议的学习

应用层是传输承载内容的所在,协议还原的本质就是要将这些应用层的数据提取出来。应用层数据千变万化,协议数量和种类很多,但对一些常见协议如HTTP,DNS,SSL的熟悉,对协议分析技能的提高会有很大的帮助。

学习的重点如下:

掌握HTTP协议的原理、方法、应用场景、数据格式及各个字段和值的含义;

掌握DNS协议的原理、机制、特征及各个数据段的含义;

掌握SSL协议的原理、交互流程及数据特征。

同时,对应用层协议的学习不能局限于协议本身,同时需要关注其细节,例如HTTP协议的请求和响应体内数据的编码,格式等知识。

对网络知识的学习,可留意本公号的相关文章。

学习完网络知识,还远远没有入门,还需要熟练使用和掌握各类抓包工具和分析方法,学习指南第二部分,将告诉需要学习的抓包工具和分析方法:

1、Wireshark

这是一个功能强大的报文工具,具备友好的用户界面,使用非常普遍,除了最初级的抓包、导流、搜索、保存等基本功能外,还应掌握各种过滤、显示和统计等高级功能。

2、Fiddler

这个工具主要是用于HTTP和HTTPS协议的分析,一些抓包和分析的具体方法需要掌握牢。

3、tcpdump

这是Linux下的抓包工具,它的各种参数需要熟悉。

4、一些方法

对分析工具的使用中,需要学会下列方法,以提高效率:

从大量报文中找到特定IP或其它特征的流量;

定位特定应用或特定动作产生的流量;

从海量报文中找到有价值的信息。

对工具的使用,可以参考本公号菜单栏的工具技巧栏目。

学习完网络知识和工具使用,还没完,需要在此基础上更深入一层,对数据的编码和解码有一定了解,学习指南第三部分,将告诉你一些需要学习的编码知识:

1、常见的编码

gzip

URL

json

MIME

UTF8

JS

protobuf

xml

BASE64

2、关注点

各个编码的特点,特征及常用场合。

本公号内,也有部分编码知识的介绍。

在对前面提到的知识学习好之后,学习指南的最后一部分,第四部分,将告诉你接下来需要做什么:

实战实战实战,重要的事要说三遍。

实战需要从两个方面入手:

1、找一个APP,去抓包,分析它产生的报文,尝试从报文中提取有价值的信息,发现一些规律。

2、找一个报文分享的网站,下载一些标准协议的报文文件,拓展协议知识的边界,会发现,前面学习的协议知识,只是协议海洋里很小的一部分。

02

结语

按照前一章进行了入门级学习以后,你就可以独立进行简单的协议分析任务了,然后,就需要在此基础上边应用边学习了,关键是需要做到融会贯通,以一反三。

同时,还要时刻记得,协议不是一成不变的,社会发展很快,科技发展更快,想跟进时代的潮流,要保持一颗学习之心。

大家一起进步,共同提高吧。

长按进行关注。

从新手到入门,如何进入协议分析的世界相关推荐

  1. Wireshark协议分析从入门到精通(免费版)-陈鑫杰-专题视频课程

    Wireshark协议分析从入门到精通(免费版)-5479人已学习 课程介绍         Wireshark是目前全球使用广泛的开源抓包软件(前身为Ethereal),是一个通用化的网络数据嗅探器 ...

  2. Linux下的网络协议分析工具-tcpdump快速入门手册

    TCPDUMP简介 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一.sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的.对于网络管理人员来说,使 ...

  3. PYTHON黑帽编程1.5 使用WIRESHARK练习网络协议分析

    Python黑帽编程1.5  使用Wireshark练习网络协议分析 1.5.0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks At ...

  4. python新手项目-推荐:一个适合于Python新手的入门练手项目

    原标题:推荐:一个适合于Python新手的入门练手项目 随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人 ...

  5. ffmpeg 怎么处理udp音频_视音频数据处理入门:UDP-RTP协议解析

    ===================================================== 视音频数据处理入门系列文章: =============================== ...

  6. 视音频数据处理入门:UDP-RTP协议解析

    ===================================================== 视音频数据处理入门系列文章: 视音频数据处理入门:RGB.YUV像素数据处理 视音频数据处理 ...

  7. 通过一款早期代码抽取壳入门学习 so 层分析

    1. 前言 文章开始需要提下的就是,在如今看雪论坛的用户一发关于安卓加固的文章动辄就是有关脱壳机.vmp.函数级指令抽取或者各大厂商的加固等技术的情况下,为何我要发一个代码抽取壳的分析,并且还是早期的 ...

  8. TLS协议分析 (九) 现代加密通信协议设计

    六. TLS协议给我们的启发 - 现代加密通信协议设计 在看了这么多的分析和案例之后,我们已经可以归纳出加密通信协议设计的普遍问题,和常见设计决策, 设计决策点: 四类基础算法 加密/MAC/签名/密 ...

  9. TLS协议分析 与 现代加密通信协议设计

    本文目标: 学习鉴赏TLS协议的设计,透彻理解原理和重点细节 跟进一下密码学应用领域的历史和进展 整理现代加密通信协议设计的一般思路 本文有门槛,读者需要对现代密码学有清晰而系统的理解,建议花精力补足 ...

最新文章

  1. 继承复习-发均分红包案例
  2. java 怎么输出地址,Java中char[]输出不是内存地址的原因详解
  3. android之视频直播与播放Vitamio
  4. 我了解到的面试的一些小内幕!顺利通过阿里Android岗面试
  5. Kafka刚开启就秒退
  6. 16年的大数据经验,为了搞定数字化转型,我和老板做了个赌注
  7. SQL Server 2005全文检索技术
  8. linux [1045] Access denied for user 'root'@'localhost' (using password: YES)
  9. 邮件服务器怎么填写,邮箱可以绑定哪些客户端?
  10. java 坐标转换_java – 将图像X,Y坐标转换为经度和纬度?
  11. 菠萝来啦。新一代VueX 来啦 他有一个特别甜的名字“Pinia”,再不学你就out了【 Pinia/Vuex5中文文档】
  12. 参数方程下的特殊图像
  13. Qt利用QZXing和QRenCode识别二维码和制作二维码
  14. 京东物流王梓晨:打造全栈团队,你要避开这些大坑
  15. git初使用之配置-.gitconfig .gitignore
  16. PBR流程常用的几种贴图类型
  17. 什么是CSRF(跨站请求伪造)?
  18. ffmpeg视频转码工具安装
  19. 值得你关注的Android6.0上的重要变化(一)
  20. Java小贱人,我要征服你!

热门文章

  1. android 开启一个定时线程_ANDROID开发中定时器的3种方法
  2. python xlrd读取excel所有数据_python读取excel进行遍历/xlrd模块操作
  3. 8-flutter 异步和线程
  4. 【iOS】中间透明的引导蒙层
  5. js 使用 Lawnchair 存储 json 对象到本地
  6. [Android Pro] 有关Broadcast作为内部类时注册的一些问题
  7. iOS绘制图片与文字
  8. HDU 4869 Turn the pokers(思维+组合公式+高速幂)
  9. AjaxFileUpload文件上传组件(php+jQuery+ajax)
  10. UDP客户端不用绑定吗IP和端口?