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 原 ...
随机推荐
- crypto-gmsm国密算法库
crypto-gmsm国密算法库 一.开发背景 crypto-gmsm国密算法库是国密商密算法(SM2,SM3,SM4)工具类封装,国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,目前主 ...
- inspeckage
c:\ChangZhi\dnplayer2 d:\ChangZhi\dnplayer2然后在电脑的 terminal 中执行 " 端口转发 " 命令:adb forward t ...
- vue学习 第三天css基础
1.emment语法(作用:提升html和css书写速度) 2. 复合选择器 1)由两个或多个基础选择器,通过不同的方式组合而成的,可以更准确.更高效的选择目标元素(标签) 2)后代选择器.子元素选择 ...
- js获取的 后端的列表。
1.引号被转码 处理办法 {% autoescape off %} var tmp = '{{ data1 }}'; var tmp = '{{ data2 }}'; {% endautoescape ...
- 2022-05-12内部群每日三题-清辉PMP
1.项目团队成员将因积极工作和满足项目成本目标而获得奖励.高级经理向项目经理询问团队成员的可用性和旅行偏好,项目经理可以在哪里获得奖励的定义标准和频率? A.责任分配矩阵(RAM) B.项目管理计划 ...
- go iris框架文件上传下载
在 Iris 框架中,可以使用内置的 iris 包中的 Context 对象来处理文件上传和下载.以下是一个简单的示例代码: package main import ( "github.co ...
- Jest - Configuring Jest
Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects ...
- tomcat不生成日志文件
1.不生成 catalina.out 将 /bin/catalina.sh 文件中的: if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT= ...
- winform 容器内存泄漏
循环中释放容器时调用Dispose()方法会销毁对象,导致容器的个数变化. 正确示例//方法一for (int i = this.flowLayoutPanel1.Controls.Count-1; ...
- 针对Vmware打开BIOS中VT虚拟化相关后仍然报错
安装虚拟机时报错问题现象: 通过VMware虚拟机安装Centos时提示弹出提示框,"已将该虚拟机配置为使用64位客户机操作系统,但是,无法执行64位操作."具体提示如下图所示: ...