IEC104
IEC10X协议源码
https://github.com/airpig2011/IEC104
一、源码编译
- 下载源代码并解压
- 进入文件夹下test目录,对main.c进行修改
我们使用套接字来实现服务器和客户端的交互,两者的地址应该相同,这里的地址应该设置为服务器本身所在的地址,可以用ifconfig查,查不到的话可以采用"127.0.0.1"。



- 编译
在test文件夹下执行命令make
然后分别在此目录的两个终端下执行如下命令
./iec104_monitor -m server -n 1
选项m选择server模式,充当服务器
./iec104_monitor -n 1
默认则为client模式,充当客户端,注意,服务器启动必须在客户端启动之前。如下图所示,即为启动成功,两者之间可以完成收发功能。


二、模糊测试
修改Makefile,将编译方式改为afl-clang-fast

make clean、make重新编译,根据报错信息将函数的返回值改为return 0;修改main.c文件,使其能够同时启动server和client模式。main函数中区分二者通过if/else条件判断,这里选用fork()函数,完成多进程修改。

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

保存后重新进行编译,编译通过,可以发送数据。
./iec104_monitor -n 1

新建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的更多相关文章
- IEC104协议规约解析
一.四遥信息体基地址范围 104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测.遥信等信息体基体址,区别如下: 类别 1997版基地址 2002版基地址 ...
- (转)TCP注册端口号大全
分类: 网络与安全 cisco-sccp 2000/tcp Cisco SCCPcisco-sccp 2000/udp Cisco SCCp# Dan Wing <dwing&cisco ...
- 网络-05-端口号-F5-负载均衡设-linux端口详解大全--TCP注册端口号大全备
[root@test1:Standby] config # [root@test1:Standby] config # [root@test1:Standby] config # [root@test ...
- CentOS 7 服务端口表
# Note that it is presently the policy of IANA to assign a single well-known# port number for both T ...
- Apache Pulsar 在能源互联网领域的落地实践
关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支 ...
- EPF:一种基于进化、协议感知和覆盖率引导的网络协议模糊测试框架
本文系原创,转载请说明出处:from 信安科研人 目录 实验 工具的安装 1.安装AFL++ 2.安装epf 对IEC104协议库进行fuzz 实验准备 使用AFL++中的编译器插桩 开始fuzz 原 ...
随机推荐
- 【转载】Python(cx_oracle)的DPI-1047错误
转自:https://blog.csdn.net/weixin_45158749/article/details/124800132 Python(cx_oracle)的DPI-1047错误 步步 F ...
- 06 RDD编程
总共有多少学生?map(), distinct(), count() 开设了多少门课程? 每个学生选修了多少门课?map(), countByKey() 每门课程有多少个学生选?map(), coun ...
- 微信小程序tabBar图标显示失败问题
练习tabBar时发现链入的图片在没有任何语句语法错误以及报错的情况下显示失败 试了很多办法 最后请教了一下学长才知道需要重启小程序开发工具并清缓存 问题解决
- 了解ASP (一)
1. ASP是什么? ASP 指 Active Server Pages (动态服务器页面), 是在 IIS 中运行的程序.ASP 文件的扩展名是 ".asp" 2. ASP与HT ...
- kafka数据顺序一致
问题: kafka如何发送顺序消息 方案:kafka可以通过partitionKey,将某类消息写入同一个partition,一个partition只能对应一个消费线程,以保证数据有序. 也就是说生产 ...
- netmiko批量操作华为设备
from concurrent.futures import ThreadPoolExecutorimport timeimport netmikoimport osfrom threading im ...
- 微信小程序隐私指引完整填写范本(开发者收集你选中的照片或视频信息,用于?)
为了分辨用户,开发者将在获取你的明示同意后,收集你的微信昵称.头像.为了显示距离,开发者将在获取你的明示同意后,收集你的位置信息.开发者收集你的地址,用于获取位置信息.开发者收集你的发票信息,用于维护 ...
- #pragma directive
#pragma package(smart_init) #pragma package(smart_init)确保已打包的单元按照其依赖关系确定的顺序进行初始化(默认情况下包含在package(包)源 ...
- .Net core 基础 创建及Nlog
一..Net Core 依赖注入 .net core3.1 之前的版本需要手动配置swagger.当前项目.net core5.0版本自动配置完成 跨域配置 1.下载依赖包 2. ...
- OS复盘
OS复盘 OS课设已经结课一段时间了,我也从其他课程中抽身出来,有了一段能够好好反思的时光. 说实话,完成OS课设的过程是很痛苦的,指导书蜻蜓点水.注释模棱两可.各种函数和文件调用杂乱无章.每次在完成 ...