PLC程序密码破解方法,并总结了详细的解密过程
PLC程序解密,密码破解方法步骤分析,有关plc的解决方法,在进行plc编程的过程中,有时需要plc解密的一些操作,这里说一说plc的解密方法,并总结了详细的解密过程,有需要的朋友参考下。
PLC解密方法
1、使用串口调试器。
2、设置好有关参数。
设置串口:COM1,波特率:9600,数据位:7,校验:E偶,停止位:1
输入:输入EHX,显示:显示ASC
确定三菱PLC型号。根据PLC型号选择在串口调试程序的 文本 中输入对应字符串。
PLC型号 对应字符串
FX2 /STX0700808/ETX6A
FX2N /STX0300808/ETX66
FX2_EPROM /STX0800808/ETX6B
FXON/FXOX /STX0800808/ETX6B
FX1N/FX1X /STX0800808/ETX6B
3、发送后在接收框中显示的字符串就是plc的密码。
如果看不出来的话,将这些字符串拷贝到 HEX格式 中。发送一次看看。(发送前记得先断开PLC)
建议你自己设置一个密码,然后用这个方法读取一次看看,以后就知道是怎么回事了。
密码字符:0-9,A-F。
A系列:
发送:A2 07 00 FF 02 05 AE 00 08 C3
接收:0B 00 FF 02 00 AA 77 55 BB EF CD AB A4 00
密码:ABCDEF
发送:A2 07 00 FF 02 05 AE 00 08 C3
接收:0B 00 FF 02 00 AA 77 55 BB C1 B1 A1 A4
密码:A1B1C1
分析:密码为返回字符中BB至A4之间的字符,以每2字符为单位,从右往左读出。
FX系列:
返回:34 31 34 32 34 33 34 34 34 35 34 36 34 31 34 32
密码:ABCDEFAB
分析:接收到的是ASC码,对应的字符为 4 1 4 2 4 3 4 4 4 5 4 6 4 1 4 2,以每2字符为单位组合,即
41 42 43 44 45 46 41 42,
再译为对应的字符即为 ABCDEFAB.
1、在发送字符栏输入下面的字符串后点发送;
02 30 38 30 30 38 30 38 03 36 42
3、返回一串16进制的ASCII码,30H为数字0,31H为数字1,以此类推;
例:02 30 38 30 30 38 30 38 03 36 42
( 37ms )
/STX4236353433323130/ETX41
密码是:B6543210 《42=B》
以上就是PLC解密方法及解密过程的全部内容,希望对大家有所帮助。
TypeScript 中的整形和浮点数类型都是 number,这点和 JavaScript 是一样的,比如:十进制、二进制、八进制和十六进制的类型都是 number。
let decAge: number = 22; let hexAge: number = 0x0016; let binaryAge: number = 0b10110; let octalAge: number = 0o026; // 以上变量使用 (number).toString(10) 转换为十进制都为 22 复制代码
可使用 (number).toString(进制) 将数字转换为任意进制的类型。
字符串 → string
和 JavaScript 一样,字符串的值使用单引号或者双引号包裹:
let myName: string = "编程三昧"; let myHomepage: string = `example.com/${myName}`; 复制代码
数组
TypeScript 中定义数组的方式有两种。
第一种是元素类型后面接上 [],表示由此类型元素组成的一个数组:
let arr: number[] = [1, 2, 3, 4]; // 如果在数组中加入其他元素会报错 复制代码
第二种是使用数组泛型定义数组:
let arr1: any[] = [1, "2", 3, "4"]; // 这个数组中可以假如任意类型的元素 复制代码
元组 Tuple
元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。
let arr2:[number, string, number] = [1,"2",3]; // 若果写成 [1,2,3] 会报错 复制代码
元素是严格规定了数组的长度和每个位置的元素类型,并且在赋值时需要严格对应,否则会报错。
枚举
enum类型是对JavaScript标准数据类型的一个补充。像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。
enum Color {Red, Green, Blue} let c: Color = Color.Green; 复制代码
默认情况下,从0开始为元素编号。你也可以手动地指定成员的数值。例如,我们将上面的例子改成从 1开始编号:
enum Color {Red = 1, Green, Blue} let c: Color = Color.Green; 复制代码
或者,全部都采用手动赋值:
enum Color {Red = 1, Green = 2, Blue = 4} let c: Color = Color.Green; 复制代码
枚举类型提供的一个便利是你可以由枚举的值得到它的名字。例如,我们知道数值为2,但是不确定它映射到Color里的哪个名字,我们可以查找相应的名字:
enum Color {Red = 1, Green, Blue} let colorName: string = Color[2]; console.log(colorName); // 显示'Green'因为上面代码里它的值是2
上一节,我们已经把gitlab、jenkins、harbor、k8s都已经搭建好了,这一节我们来编写jenkins的pipline将我们的服务通过jenkins完整的发布到k8s中。
2、部署中间件
将mysql、redis、es等部署到k8s之外 , 模拟用作线上独立环境(至于线上你想把某些中间件部署到k8s内部这个自行处理,本次重点是如何将go-zero开发的微服务部署到k8s集群内部),这里我就直接使用项目下的docker-compose-env.yaml了,把所有依赖的第三方中间件环境直接安装在srv-data.com(192.168.1.181)这台服务器,前提是这台服务器已经安装好docker、docker-compose。
登陆到 192.168.1.181
$ mkdir data && cd data && vim docker-compose.yml$ docker-compose up -d$ docker-compose ps #查看确认
3、独立配置
将每个服务的配置都独立出来,统一放在一个git仓库,这样只给一个人线上仓库的权限,如果线上配置有变直接修改这个仓库的文件,在jenkins做cd的时候,会先拉取代码再拉取对应服务的配置自动构建,具体可以看后面的pipline。
【问】为什么不用配置中心?
1)修改db、redis等需要重启服务,但是有一些配置又不需要重启服务,运维又要去记,记混了比较容易造成线上事故
2)方便回滚。我们发新版本到线上,并且又改了新版本配置。这时候线上用户反馈有问题,线上需要快速回滚的话,如果我们使用将文件构建到镜像中,直接使用k8s一行命令就可以将上一个版本代码加配置直接回滚回来。如果使用了配置中心,回滚了代码,还要将上个版本的配置去配置中心改回来,很麻烦。
PLC加密技术和解密方法
PLC加密技术,其实就是开发者的一种思路,只要明白了作者的加密思路,就能对它很快的解密。其实,在自然界中不管是PLC,还是电梯主板只要有加密的存在就会有破解它的秘籍,这二者永远都是矛和盾的结合体。
先介绍两种PLC解密方法:
1
直读法
就以三菱FX2为例:先打开串口监控软件(到网上百度一下就有很多),监控串口的进出数据。然后让再运行FXWIN(PLC编程软件)和PLC联机,选了型号后点程序读取这时候在串口监控软件中可以看见电脑和PLC间互发了几串字符,最后一行由PLC发给电脑的就是密码,只是它是ASII码对照一下表格,把它翻译成字符就得出密码了。呵,这是三菱PLC的漏洞,它的编程软件是先将密码读到电脑内存在和用户输入的密码进行比较,密码对就可以读出程序。我试验了一下,用串口软件把倒数第二行字符发到PLC,PLC同样返回了密码。说到这大家知道这个解密软件怎么做了吧?整个解密软件只要发一串字符到PLC,再把PLC返回的带密码的字符翻译成密码就可以了。有些PLC就没这样的漏洞了,像OMRON和FUJINB2,它们都是把用户输入的密码传到PLC由PLC判断密码是否正确才判定能否读取程序。
2
暴力破解
同样运行串口监控软件,打开编程软件联机,点程序读取,再输入密码1234,如果读出了程序,那就不用解了。如果显示密码错误,那就看看监控软件里的数据.查找1234这个字符串,在含有1234的字符后会有一行PLC返回的表示密码错误的信息,把这行错误信息记录下来。然后打开VB,做个小工程:让电脑发那行含有1234的字符串到串口,当然,要有个循环语句,就是把1234改成从0000到FFFF,让电脑不停的尝试。用IF语句把返回的信息和刚才记录下来的那条错误信息比较,如果信息不同则停止尝试,试到的密码就是PLC的密码了。
看到这您是否已经感觉到PLC加密技术也不过如此。海阔天空的感觉。恭喜你,说明你已经领会了加密和解密的真理。具体的实现方法很多种。但领会真理是最重要也是最难的。俗话说:大道无术,中到有形,小道若巧。呵呵,先说到这吧,一些细节一时半会也不能介绍的太清楚。大家自己动手多尝试,多动脑,多领悟定有收获。
相关问答
怎么破解永宏PLCB1z系列密码?
上载提示输入密码的可以破解,提示程序不存在的是解不了的,属于保密下载,也有可能是密码加保密下载、也是提示输入密码;谢谢!上载提示输入密码的可以破解,提示...
三菱PLC密码怎样才能不容破解?
三菱的PLC的FX系列的密码是放在一个指定的寄存器里面的,用专门的软件一下就读出来了,连一秒钟都用不上,所以FX系列就没必要加密了,但是那些中大型的模块式的P...
西门子200plc密码怎么破解?
西门子S7-200带CN的PLC只能拆机破解,没有直接用数据线破解的,拆机后,取出CPU板上的一个八角芯片,放到芯片读取器上,读出一个BIN文件,用解密软件解这个BIN文...
西门子plc解密方法与技巧?
西门子PLC解密属于电路解密技术,需要掌握相关的电路原理和知识。一般而言,西门子PLC采用的是专用加密芯片进行保护,需要进行分析和破解。解密时需要利用电路分...
谁知道怎么破解三菱3U和Q系列PLC的密码啊?
只运用了定时器,SETRSTZRST指令ZRSTY0Y7:复位Y0-Y7八个输出。即RSTY4只运用了定时器,SETRSTZRST指令ZRSTY0Y7:复位Y0-Y7八个输出。即R...
丰炜plc解密方法?
1.目前没有明确的丰炜PLC解密方法。2.这是因为PLC(可编程逻辑控制器)的解密是一项技术难题,涉及到硬件和软件的复杂结构,以及丰炜PLC厂家的保密措施。解密...
如何解除PLC的密码?
解除方法是:1、选择plc>清除参–lear)菜单命令,显示“清除”对话框。2、选择所有的复选框,并点击“确认”按钮核实采取的措施。3、如果密码已被配置,st...
plc程序密码忘了怎么解决?
如果您忘记了PLC程序的密码,您需要联系制造商或供应商以获取支持。他们可能会要求您提供PLC的详细信息和许可证,并可能为解决问题收取费用。在未获取支持之前...
西门子300系列plc给程序加密后能把密码解开吗?
把step7软件升级到5.5以上(最新的是5.6),或者用西门子最新的博途软件,右击某个程序(block)就能看到加密选项,目前这两种加密方法无法破解(老版本的step7...把...
我有一个西门子200PLC,程序里面被设置了密码,我的原始备份的程序也丢失了,我无法从现在运行的PLC里面下?
把那PLC密码破解了就可以了,你先找找有没有免费解密软件,要是找不到那就只能付费解密了,我这边是做维修的,但是我自己没有解密软件,要是有就免费给你了,公...