• win | wireshark | 在win上跑lua脚本 解析数据包


    前提说明:之前是在linux 系统上配置的,然后现在 在配置lua 脚本 ,然后 分析指定协议 的 数据包

    其实流程也比较简单,但 逻辑需要缕清来

    首先要把你 预先准备的 xxx.lua 文件放到wireshark 的安装文件中,(我就是之前装过,然后不太确定是在哪个目录 wireshark 里头有好多目录)
    在这里插入图片描述
    参考:

    dofile(DATA_DIR.."xxx.lua")
    
    • 1

    接着就可以通过wireshark 打开已经抓的包(文件格式 yyy.pcap),开始愉快的解析数据啦

    参考

    //BAD_REQUEST 语法错误
    //NO_REQUEST 请求不完整
    int parse_request_line(char *text)
    {
        m_url = strpbrk(text, " \t");   //找到 第一处空格 或者 \t
        if (!m_url)
        {
            return BAD_REQUEST;
        }
        //用\0空字符来划分每一行具体信息 
        //方便后续操作 因为字符串函数都以空字符作为划分
        *m_url++ = '\0';
     
        char *method = text;
        if (strcasecmp(method, "GET") == 0)
            m_method = GET;
        else if (strcasecmp(method, "POST") == 0)
            m_method = POST;
        else
            return BAD_REQUEST;
     
        m_url += strspn(m_url, " \t");      //跳过剩余的 空格和\t   因为可能不止用一个空格和\t来分隔
        m_version = strpbrk(m_url, " \t");
        if (!m_version)
            return BAD_REQUEST;
        *m_version++ = '\0';
     
        m_version += strspn(m_version, " \t");
        //到此为止 m_url、m_version都指向对应位置的开头
     
        //仅支持HTTP//1.1
        if (strcasecmp(m_version, "HTTP/1.1") != 0)
            return BAD_REQUEST;
     
        //对请求资源前7个字符进行判断
        //这里主要是有些报文的请求资源中会带有http://,这里需要对这种情况进行单独处理
        if (strncasecmp(m_url, "http://", 7) == 0)
        {
            m_url += 7;
            m_url = strchr(m_url, '/');
        }
        //同样增加https情况
        if (strncasecmp(m_url, "https://", 8) == 0)
        {
            m_url += 8;
            m_url = strchr(m_url, '/');
        }
        //一般的不会带有上述两种符号,直接是单独的/或/后面带访问资源
        if (!m_url || m_url[0] != '/')
            return BAD_REQUEST;
     
        //当url为/时,显示判断界面
        if (strlen(m_url) == 1)
            strcat(m_url, "judge.html");
    		
        return NO_REQUEST;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57

    ######################################################################
    更新
    参考1

  • 相关阅读:
    大神带你玩转异步编程,理论与实践齐飞,敢说是目前最全的讲解了
    Delphi使用JSON
    【Matplotlib绘制图像大全】(十九):Matplotlib绘制等高线
    【UCIe】UCIe Multi-Module Link 介绍
    shell脚本中$0 $1 $# $@ $* $? $ 的各种符号的意义
    uniapp 离线打包 plus.runtime.install 安装页面不弹起
    【自用14.2】C++俄罗斯方块
    Vue学习之计算属性
    序设计·RB(AT&T汇编)_笔记_第10章:处理字符串
    android端MifareClassicTool
  • 原文地址:https://blog.csdn.net/ttxiaoxiaobai/article/details/132575540