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. 一个ASP中的Base64加密 解密函数代码

    <% OPTION EXPLICIT const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu ...

  2. Windows 远程桌面连接ip查询

    导航到:应用程序和服务日志 > Microsoft > Windows > TerminalServices- RemoteConnectionManager,右键单击"O ...

  3. 四种语言刷算法之 组合总和 II

    力扣40. 组合总和 II 1.C void back(int* candidates, int candidatesSize, int target,int start,int *path,int ...

  4. Java学习笔记(一)环境安装与java基础

    学习笔记01 两年前学的Java,现在已经忘得差不多了,跟着狂神说Java的视频从头开始学,希望能救一救ww 一.JDK JRE JVM 1. JDK java development kit 2. ...

  5. Vulnhub:recon靶机

    kali:192.168.111.111 靶机:192.168.111.188 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...

  6. vscode 开发c++

    makefile.mk #makefile.mk 公共头文件 ifndef TARGET # /root/make/src/test_include # notdir TARGET:=$(notdir ...

  7. 在Linux中实现打印目录程序遇到问题及解决

    今日阅读Linux程序设计第四版时,书中给出了一段实例代码,功能为实现/home目录下各级目录结构,当然不一定非得是/home下目录才可以,任何一级目录都可以. 自己尝试在Ubuntu系统运行编译,实 ...

  8. Mysql数据库基础第五章:(二)视图

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  9. 提升IIS权限

    如何去修改IIS的权限   在IIS中当前网站高级设置中查看-应用程序池-修改标识-标识代表权限 可以通过调整应用程序池权限来维持后门. 安装IIS.支持.aspx脚本.是为了用木马查看权限. 上面的 ...

  10. vue框架08 vue3

    vue3的介绍 # vue项目的版本,新项目使用vue3,部分老项目使用vue2 # vue3的变化 1.性能的提升 - 打包大小减少41% - 初次渲染快55%,更新渲染块133% - 内存减少54 ...