信捷PLC的解密方法
ztj100 2024-11-24 01:33 11 浏览 0 评论
信捷PLC的解密具有一定的难度,很多人特别是新入门者,会觉得很难解。下面就分享一下笔者的一些经验,供大家参考。经笔者试验,信捷PLC在设计方面有几个漏洞,可以用于PLC解密。 先说软件方面的两个漏洞:
第一, 在PLC已加密的情况下,如果最后一次PLC与电脑连接时,曾向PLC输入密码,在 退出软件前PLC是在线状态的,那么通过串口向PLC发送如下十六进制代码:
先发, 01 01 74 02 00 01 47 FA
再发, 01 03 44 54 00 01 D1 2A
最后发, 01 03 44 0A 00 03 31 39
这时PLC就会直接返回11个字节: 01 03 06 313233343536 C5 5C
在这11个字节中,前3字节是地址和命令代码,最后2字节是CRC校验的高字节和低字节;从第4字节到第9字节,这6位就是密码了,可以直接对应ASCII码表翻译出来,如上面的31-36就是十进制的1-6,所以返回的密码就是123456。
第二, 除了上面的漏洞,还有一个就是,可以通过试错来得到, 信捷的密码解除指令为:
01 03 40 0A 00 01 B1 CB
发出这个指令与01 01 74 02 00 01 47 FA 都会访问密码,不过后者在返回密码后还会上传程序,前者只是单纯地解除密码。 在发出这个指令后,再发出如下指令
01 10 44 2C 00 03 06 * * * * * *# $
*表示十六进制的密码,#表示CRC校验的高字节,$表示CRC校验的低字节,这串代码需要用计算机自动发送,运气好的情况下,很快会返回密码。这个方法同样适用于三菱等PLC。
再谈谈硬件方面的漏洞: 先发张图看看,下面的图是信捷XC3-24RT-E的PLC的拆机照片,
1. 图中最上方的PLCC封装的芯片,是PLC的控制芯片。我们知道,在软件上PLC的组成 由系统程序和用户程序组成。系统程序有的也称自举程序,用户程序是用户也就是PLC使用者编写的程序。该块芯片内存放的,就是系统程序。
2. 图中下方右侧是一片单片机,它的作用是辅助主芯片进行系统方面的控制。
3. 图中下方左侧的一大一小两片芯片是存储用户程序的内存芯片,也就是说我们编写的 PLC控制程序都是存放在这里面的。
4. 其他的芯片,包括驱动芯片,通信芯片,运放等等与我们破解无关,就不细述了。
在了解了以上内容后,大家会有疑惑了,PLC程序我们知道在哪里了,问题是密码在哪里呀?其实这个问题很简单,密码一般是放在内存中的,当然也有存放在主控芯片中的。但是无论哪种情况,主控芯片在初始化扫描程序的时候,一定会扫描自身的某个寄存器,这个寄存器存放的是一个标志,即程序有无加密的标志。如果该寄存器被置位(表示程序已加密),那么在运行上位机软件登录时就调用密码输入程序,反之则不进行密码输入程序的调用,直接调用用户程序。因此,一切的玄机都在这个神奇的寄存器中!
我们在无法改变这个特殊寄存器的值的情况下怎么办呢?怎么才能绕过密码读取程序呢?或者直接得到密码呢? 方法有两个:
一,更换控制芯片,内存芯片不变,这时PLC的程序就可以直接读出来了;
二,更换内存芯片,将内存芯片更换到另一块没有密码的板子上,亦可以直接读出程序。 以上就是此次介绍的利用漏洞破解信捷PLC密码的全部方法了! 除了以上的,当然还有一些其他的漏洞,在此就不分享了。
最后给诸位分享一组万能代码:31 35 32 37 39 31 39 35 31 39 31 使用串口工具发送模式,输入万能代码,然后在HEX/ASCII中切换至ASCII形式,将代码发送即可。 技术需要交流才能进步,望诸位不吝门户之见,坦诚交流。
相关推荐
- 告别手动操作:一键多工作表合并的实用方法
-
通常情况下,我们需要将同一工作簿内不同工作表中的数据进行合并处理。如何快速有效地完成这些数据的整合呢?这主要取决于需要合并的源数据的结构。...
- 【MySQL技术专题】「优化技术系列」常用SQL的优化方案和技术思路
-
概述前面我们介绍了MySQL中怎么样通过索引来优化查询。日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如INSERT、GROUPBY等。对于这些SQL语句,我们该怎么样进行优化呢...
- 9.7寸视网膜屏原道M9i双系统安装教程
-
泡泡网平板电脑频道4月17日原道M9i采用Win8安卓双系统,对于喜欢折腾的朋友来说,刷机成了一件难事,那么原道M9i如何刷机呢?下面通过详细地图文,介绍原道M9i的刷机操作过程,在刷机的过程中,要...
- 如何做好分布式任务调度——Scheduler 的一些探索
-
作者:张宇轩,章逸,曾丹初识Scheduler找准定位:分布式任务调度平台...
- mysqldump备份操作大全及相关参数详解
-
mysqldump简介mysqldump是用于转储MySQL数据库的实用程序,通常我们用来迁移和备份数据库;它自带的功能参数非常多,文中列举出几乎所有常用的导出操作方法,在文章末尾将所有的参数详细说明...
- 大厂面试冲刺,Java“实战”问题三连,你碰到了哪个?
-
推荐学习...
- 亿级分库分表,如何丝滑扩容、如何双写灰度
-
以下是基于亿级分库分表丝滑扩容与双写灰度设计方案,结合架构图与核心流程说明:一、总体设计目标...
- MYSQL表设计规范(mysql表设计原则)
-
日常工作总结,不是通用规范一、表设计库名、表名、字段名必须使用小写字母,“_”分割。...
- 怎么解决MySQL中的Duplicate entry错误?
-
在使用MySQL数据库时,我们经常会遇到Duplicateentry错误,这是由于插入或更新数据时出现了重复的唯一键值。这种错误可能会导致数据的不一致性和完整性问题。为了解决这个问题,我们可以采取以...
- 高并发下如何防重?(高并发如何防止重复)
-
前言最近测试给我提了一个bug,说我之前提供的一个批量复制商品的接口,产生了重复的商品数据。...
- 性能压测数据告诉你MySQL和MariaDB该怎么选
-
1.压测环境为了尽可能的客观公正,本次选择同一物理机上的两台虚拟机,一台用作数据库服务器,一台用作运行压测工具mysqlslap,操作系统均为UbuntuServer22.04LTS。...
- 屠龙之技 --sql注入 不值得浪费超过十天 实战中sqlmap--lv 3通杀全国
-
MySQL小结发表于2020-09-21分类于知识整理阅读次数:本文字数:67k阅读时长≈1:01...
- 破防了,谁懂啊家人们:记一次 mysql 问题排查
-
作者:温粥一、前言谁懂啊家人们,作为一名java开发,原来以为mysql这东西,写写CRUD,不是有手就行吗;你说DDL啊,不就是设计个表结构,搞几个索引吗。...
- MySQL 之 Performance Schema(mysql安装及配置超详细教程)
-
MySQL之PerformanceSchema介绍PerformanceSchema提供了在数据库运行时实时检查MySQL服务器的内部执行情况的方法,通过监视MySQL服务器的事件来实现监视内...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- node卸载 (33)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- exceptionininitializererror (33)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)