IEC10X协议源码

https://github.com/airpig2011/IEC104

一、源码编译

  1. 下载源代码并解压
  2. 进入文件夹下test目录,对main.c进行修改

    我们使用套接字来实现服务器和客户端的交互,两者的地址应该相同,这里的地址应该设置为服务器本身所在的地址,可以用ifconfig查,查不到的话可以采用"127.0.0.1"。





  3. 编译

    在test文件夹下执行命令
    make

    然后分别在此目录的两个终端下执行如下命令

    ./iec104_monitor -m server -n 1

    选项m选择server模式,充当服务器

     ./iec104_monitor -n 1

    默认则为client模式,充当客户端,注意,服务器启动必须在客户端启动之前。如下图所示,即为启动成功,两者之间可以完成收发功能。

二、模糊测试

  1. 修改Makefile,将编译方式改为afl-clang-fast

  2. make cleanmake重新编译,根据报错信息将函数的返回值改为return 0;

  3. 修改main.c文件,使其能够同时启动server和client模式。main函数中区分二者通过if/else条件判断,这里选用fork()函数,完成多进程修改。



    修改server和client读取数据部分,修改while循环。

  4. 保存后重新进行编译,编译通过,可以发送数据。

    ./iec104_monitor -n 1

  5. 新建input、output文件夹,放入中子用例并执行模糊测试命令,出现AFL标准界面。

    echo core >/proc/sys/kernel/core_pattern
    AFL_PERSISTENT=1 afl-fuzz -i input/ -o output/ ./iec104_monitor -n 1 -p 10000

IEC104的更多相关文章

  1. IEC104协议规约解析

    一.四遥信息体基地址范围 104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测.遥信等信息体基体址,区别如下: 类别 1997版基地址 2002版基地址 ...

  2. (转)TCP注册端口号大全

    分类: 网络与安全 cisco-sccp 2000/tcp Cisco SCCPcisco-sccp 2000/udp Cisco SCCp# Dan Wing <dwing&cisco ...

  3. 网络-05-端口号-F5-负载均衡设-linux端口详解大全--TCP注册端口号大全备

    [root@test1:Standby] config # [root@test1:Standby] config # [root@test1:Standby] config # [root@test ...

  4. CentOS 7 服务端口表

    # Note that it is presently the policy of IANA to assign a single well-known# port number for both T ...

  5. Apache Pulsar 在能源互联网领域的落地实践

    关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支 ...

  6. EPF:一种基于进化、协议感知和覆盖率引导的网络协议模糊测试框架

    本文系原创,转载请说明出处:from 信安科研人 目录 实验 工具的安装 1.安装AFL++ 2.安装epf 对IEC104协议库进行fuzz 实验准备 使用AFL++中的编译器插桩 开始fuzz 原 ...

随机推荐

  1. CSS代码加滤镜将网站变为灰色(完整版)/怎么把网站变为灰色(完整版)

    CSS代码加滤镜将网站变为灰色/怎么把网站变为灰色 一.效果图 二.CSS代码 html{ background-color: rgb(238, 242, 245); background-blend ...

  2. Windows常用快捷键(但我本人不太熟知的)

    Shift+Ctrl+ESC: 打开任务管理器 Windows+E: 打开文件资源管理器 Windows+R: 运行文件 Windows+Tab: 切换应用程序 Shift+Delete: 永久删除

  3. 概率生成函数(PGF)简记

    基本搬运自<浅谈生成函数在掷骰子问题上的应用>. 对于定义在非负整数上的离散随机变量 \(X\),级数 \(F(z) = \sum\limits_{i\ge 0} \operatornam ...

  4. 自我生啃 AMBA AXI 总线笔记

    视频1:https://www.youtube.com/watch?v=1zw1HBsjDH8&list=PLkqJVNOiuuHtNrVaNK4O1BSgczja4obeW (What is ...

  5. CF1744F MEX vs MED

    个人思路: 条件可以转化成长度为 \(x\) 的区间需要包含 \([0,\lfloor \frac{(x-1)}{2} \rfloor]\). 我们从小到大枚举每一个数 \(i\),计算长度为 \(i ...

  6. Solidity8.0-02

    对应崔棉大师 26-40课程https://www.bilibili.com/video/BV1yS4y1N7yu/?spm_id_from=333.788&vd_source=c81b130 ...

  7. windows注册表的读

    1.打开 2.读取 //打开注册表 CString CDownDlg::GetPortCom(int nmber)//读取操作表,其类型为REG_SZ { CString ans; CString r ...

  8. Windows.h 文件学习

    SDk :软件开发工具包 Api  :Windows操作系统提供给应用程序编程的接口,windows.h 窗口:窗口是屏幕上的一块矩形区域,是Windows应用程序与用户进行交互的接口,分为客户区与非 ...

  9. vue实现随机生成图形验证码

    效果展示 安装插件 npm i identify 定义组件 verificationCode.vue <template> <!-- 图形验证码 --> <div cla ...

  10. jmeter进行websocket 通信

    最近项目弄了基于websocket的通信接口,所以需要做一个websocket的接口压测. jmeter当前自带的插件无法进行jmeter接口的通信,所以 本人是下载的一套jar包插件,进行的安装 1 ...