• 从新手到入门,如何进入协议分析的世界


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


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


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


    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


    结语


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


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


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

    640?wx_fmt=jpeg

    长按进行关注。





  • 相关阅读:
    AutoMapper用法
    这些基础却重要的面向对象概念,你还记得多少
    Ajax工作原理
    CSS中的绝对定位与相对定位
    NET中的Memcached.ClientLibrary使用详解
    经典Linq实例语句
    软件工程的意义
    C#.Net Mvc运营监控,计算方法/接口/action/页面执行时间
    属性与字段的区别
    SQL 递归树 子父节点相互查询
  • 原文地址:https://www.cnblogs.com/protosec/p/11673333.html
Copyright © 2020-2023  润新知