首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
modbus 工控题目脚本
2024-08-30
工控安全入门之Modbus(转载)
工控安全这个领域比较封闭,公开的资料很少.我在读<Hacking Exposed Industrial Control Systems>,一本16年的书,选了的部分章节进行翻译,以其抛砖引玉. MODBUS Modbus是20世纪70年代后期由Modicon(现为施耐德电气)为了配合其可编程逻辑控制器(PLC)一起使用,创建的基于串行的控制协议.Modbus是最常见的工业控制协议,主要是因为Modbus是一种开放的简单而强大的协议,可以在没有任何版税的情况下开放使用.自从引入Modbus以来,
工控安全入门(一)—— Modbus协议
modbus基础知识 modbus协议最初是由Modicon公司在1971年推出的全球第一款真正意义上用于工业现场的总线协议,最初是为了实现串行通信,运用在串口(如RS232.RS485等)传输上的,分为ModbusRTU.Modbus ASCII两种,后来施耐德电气将该公司收购,并在1997年推出了基于TCP/IP的Modbus TCP.现在使用最多的就是Modbus TCP了,我们今天的主角也是它. Modbus作为一种通信协议,它和我们之前介绍的Zigbee有很大不同,Zigbee有自己完
工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01
最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定程度后才出现的,因为不但操作系统的程序规模越来越大,而且应用 程序的规模也是日益增长. 代码重用在OOP出现后又是进一步提升. 什么是对象呢? 按照以前Unix的套路:一切皆文件. 在这里也可以说一切皆对象.计算机本身 也可以看做一个对象. 对象具有特征和功能,特征表现为属性,功能表现为方法.
工控随笔_19_西门子_WinCC的VBS脚本_08_常量和流程控制_01
在编程的过程中,有时候我们会使用一些固定的值,例如圆周率,或者某个人的生日,或者家庭住址等等, 这些信息对于一个对象来说一旦确定就不会改变,因此我们在编程的时候也不希望这些信息会改变,在VBS里面 也提供了和其他一些语言中一样的机制: 常量. 常量大体有两种类型: 字面值常量 和 具名常量. 一.常量 Option Explicit ' vbs 常量 'vbs有两种类型的常量: 字面值常量 和 具名常量 '字面值常量 '字面值常量, 就如字面意思一样,其值就和字面意思表达的一样 Dim strA
工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址
在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决 定在什么范围内可以访问. 同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间 这个主要是对于类的实例化对象有意义. vbs的函数和过程对参数变量进行读写的时候,在利用byVal和byRef的行为是不同的. 具体不多说,看代码. 一.代码 ' vbs变量的作用域和生命周期 ' 作用域 '1.vbs的变量有三种作用域: 脚本级作用域.过程级作用域.类级作用域 '2.vbs变量的作用域与三
工控随笔_17_西门子_WinCC的VBS脚本_06_过程和函数
和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用, 减少代码的编写量. 一.代码 具体不再多说,看实例代码. ' vbs的函数和过程 '1.过程式编程是一大编程思想,就和后来的面向对象一样,对于代码的复用 ' 和代码的逻辑结构是具有非凡的意义的. '2.现在的编程语言无论是脚本.解释型语言.编译型语言都具有函数和过程 ' 的概念 '3.简单的来说我们可以把函数或者过程看成一个黑盒子,给它原料(输入参数) ' 他们就会生成产品(输出). '4.在语法上来看,
工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二
上一个随笔说了一些关于vbs变量类型的内容,这一篇我们继续说说变量类型相关的内容. 一.NULL补充内容 '需要注意的是,NULL不能简单通过 = 来进行比较,而必须通过 'IsNull函数来实现 '下面用 = 进行比较,不会执行IF子句 Dim varTest varTest = Null If varTest = Null Then MsgBox "The variable varTest has NULL value." End If '下面用IsNull检测,会执行语句 If
工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型
说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见数据类型的重要性.大体来说,编程语言有三种: 强类型语言, 弱类型语言,介于两者之间的语言. 强类型语言要求变量定义的时候必须明确数据类型,弱类型语言不要求在变量定义时明确数据类型. 一.强类型语言.弱类型语言 我们所知的C语言系的语言都要求变量定义时明确数据类型,例如C语言.C++.Java语言等
工控随笔_11_西门子_WinCC的VBS脚本_02_运算符
VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作.运算符具有不同的类型 不同的运算符之间具有运算优先级. 一.运算符的分类 大体分为以下几类: 1.赋值运算符 2.算术运算符 3.比较运算符 4.逻辑运算符 5.链接运算符 二.运算符的优先级 运算符具有优先级,优先级决定表达式中的运算顺序,就和 1 + 2 * 3 - 4 一样,先计算 2*3 , 然后得到的结果在和 1相加,最后在减去4, 这里先计算 * 然后再计算 + 和 - 就表示运算优先级. 算术运算符的优
工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门
很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两种脚本语言,C脚本和VBS脚本,通过这两种脚本可以增强WinCC 的动态功能,可以实现一些复杂的功能. 学习西门子WinCC的vbs脚本,可以不用全面学习微软的vbs脚本知识,待用到什么去查手册 即可,但是这样的话会影响使用vbs脚本的效果和效率. 所以建议可以先从微软的VBS学起. 一.VBS脚本
工控随笔_02_西门子_WinCC的IO域利用C脚本返回值
WinCC的输入输出域用来显示信息或者接受操作人员的输入.当作为显示功能时,只有直接的变量连接 才能正常的显示,如果使用动态对话框进行设置且用了表达式则不能正确显示. 但是有时候我们在WinCC变量管理器里面已经有一个相关的变量A,而通过这个变量A可以经过一个固定 的计算方式可以得到一个我们想要的量B,我们有两种选择: 选择1.在PLC侧计算这个量B,然后再建立PLC到WinCC的链接,这种方式增加通讯负载量, 而且还增大了组态的工作量. 选择2.在WinCC侧进行计算.但是我们知道在WinCC
PC+PLC通过Modbus协议构建工控系统
一. 概述 工业设备采用HMI+PLC控制是比较常见的方案,随着工业自动化的要求越来越高,现在很多设备都要求接入企业MES系统,MES系统一般为WEB系统,接口形式大部分为HTTP协议,这种传统方案和MES系统接口就比较麻烦. 本文提供一种简单的PC+PLC的工控方案,可以采用C#开发控制端人机交互页面,PLC做控制中心,两者通过Modbus协议通信交换数据.通过这个方案也可以对旧设备进行改造增加MES接口功能. 具体方案如下: 1. 试验下位机采用SIMENS S7-200 Smart,上位机
工控随笔_20_西门子_WinCC的VBS脚本_09_常量和流程控制_02
vbs不但提供了分支结构,还提供了丰富的循环形式.一共有3种循环: 1.for循环 2.do...loop循环 3.while循环 各种循环有各自的特点,在使用的时候可以进行转换. 前面已经描述过For循环,这里简单的描述一下后面两种循环. 一.Do....loop循环 Option Explicit 'do loop 循环 'do loop循环有两种形式 '1.形式1 while形式, while true 就一直循环 '2.形式2 until形式, until true 就停止循环 Dim
工控随笔_15_西门子_WinCC的VBS脚本_05_变量类型之三_VBS数组
数组是一种复杂数据类型,不但有数组本身的数据类型: 数组,还有数组元素中存储的数据的类型. 一.vbs中的数组类型 在VBS中提供了两种数组类型,一种是固定数组,一种是动态数组. 1.固定数组 就是在定义的时候数组的大小固定了,也就是说一旦定义了固定的数组,那么数组能存储多少的数据就 不能改变了. 2.动态数组 就是在定义的时候并不指定数组的大小,在运行的时候动态的指定数组的大小,这样就能根据实际情况 设定数组的大小了. 二.实例 ' vbs 中的数组 'vbs中数组具有自己的特点 '1.vbs
工控安全入门(五)—— plc逆向初探
之前我们学习了包括modbus.S7comm.DNP3等等工控领域的常用协议,从这篇开始,我们一步步开始,学习如何逆向真实的plc固件. 用到的固件为https://github.com/ameng929/NOE77101_Firmware 目前网上几篇对于该固件的分析都是以2018工控安全题目解题为主,并没有相应的知识和说明,这次我们不会做题目方面的说明,而是重点关注如何从零开始逆向固件. 本系列涉及到vxworks操作系统.PowerPC CPU架构的汇编语言.Ghrida的反编译问题,网上
工控安全入门(三)—— 再解S7comm
之前的文章我们都是在ctf的基础上学习工控协议知识的,显然这样对于S7comm的认识还不够深刻,这次就做一个实战补全,看看S7comm还有哪些值得我们深挖的地方. 本篇是对S7comm的补全和实战,阅读本篇之前一定要先阅读以下文章,掌握基本的S7comm知识: 工控安全入门(二)—— S7comm协议 本篇文章依然有很多笔者自己摸索的内容,可能存在错误,同时也发现了wireshark对于s7comm解析的几个模糊之处,希望大家能帮忙指正.本次选用的流量包来自于github的w3h,有兴趣的同学可
工控安全入门(二)—— S7comm协议
在上一次的文章中我们介绍了施耐德公司的协议modbus,这次我们把目标转向私有协议,来看看另一家巨头西门子的S7comm.首先要说明,这篇文章中的内容有笔者自己的探索,有大佬们的成果,但由于S7comm是私有协议,一些结论和看法不可能完全正确,希望各位有认为不对的地方或是更好的看法可以评论告诉我. ps:有些专业名词可能不对,因为没找到准确的翻译或者是根本没找到官方定义(毕竟是私有协议),笔者就自己起了名…… 建议阅读本篇前首先阅读:工控安全入门(一)—— Modbus协议 S7comm简介 西
开源纯C#工控网关+组态软件
一. 前言 在园子潜水也七八年了.说来惭愧,这么多年虽然一直自称.NET铁杆粉丝,然仅限于回几个不痛不痒的贴,既没有发布过代码,也没有写过文章. 看着.NET和C#在国外风生水起,国内却日趋没落,我也早觉得有写一点东西的必要了. 二. 为什么要开源,它能做什么 开源是大势所趋 现在已经不是兜售软件光盘卖授权的时代了.我自己开发这套系统也得益于开源. 起因是因为看到单位用的组态软件被版权问题困扰,同时系统十分庞大,动辄几个G,安装部署调试都不方便,同时脚本功能和扩展能力也有限. 开始就是自
最新工控\建模仿真\组态\监控集成开发平台源码解决方案2019 ---所有VC++源码100%提供!
使用E-Form++可视化企业版本,构建属于自己的专业工控.建模仿真. 监控组态.培训仿真平台! -- 100%源码 (全部采用VC++/MFC编写,支持.NET, Java, Web, Delphi等开发)彻底开放组态平台! 构建专业工控.仿真平台是一件非常复杂的系统工程,使用E-Form++可视化源码组件库将为您节省超过70%的开发时间.为了能更加清晰的显示如何完成这项工作,我们专门对原来的解决方案进行了细致的拓展,构建了能够对所有工控开发过程中的变量.画面.脚本等进行综合管理的解决方案.该
工控安全入门之Ethernet/IP
这一篇依然是协议层面的,协议层面会翻译三篇,下一篇是电力系统中用的比较多的DNP3.这一篇中大部分引用的资料都可以访问到,只有一篇reversemode.com上的writeup(http://reversemode.com/downloads/logix_report_basecamp.pdf)需要身份认证才能下载,如果有朋友能下载求分享. Ethernet/IP 与Modbus相比,EtherNet/IP 是一个更现代化的标准协议.由工作组ControlNetInternational与OD
热门专题
latex引用出现问号
ClassicLink 怎么用
lombok slf4j测试类中无法使用
.Net Core 跨平台应用使用串口、串口通信
linux chromium白屏
c# webservice 自定义schema
chome ajax获取本地文件内容
sql 将日期格式改成带毫秒的
qfile读取文件判断编码
mapbox地图添加高德地图
k8s idea 源码 报错
eclipse js渲染的页面中文乱码
java 获取手机号所属地区
uniapp 公共请求封装
科大讯飞tts语音引擎供应商
centeros5 安装mysql
jquery 点击输入框 ajax 提交
vue3 layer 弹窗
python 批量将链接转pdf
matlab的print函数保存图片到指定文件夹