三菱PLC三菱PLCFX3U解密研究最新进展_第1页
三菱PLC三菱PLCFX3U解密研究最新进展_第2页
三菱PLC三菱PLCFX3U解密研究最新进展_第3页
三菱PLC三菱PLCFX3U解密研究最新进展_第4页
三菱PLC三菱PLCFX3U解密研究最新进展_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 HYPERLINK /St221084 三菱 PLC 三菱PLC FX3U解密研究最新进展 我是从2010年5月26日开始研究FX3U解密,查遍网络找不到只言半语,看来FX3U解密没人研究,或者研究的人怕人家学,竟然找不到一丁点有用的信息。看来只有靠自力更生了。 虽然目前已经研究成功了FX3U解密,免拆机的,读出正确程序和参数,包括禁止上载的问题也能读出正确程序和参数。但我还是想把当时研究解密的过程整理出来,供有兴趣的朋友参考,我这里所讲的过程也是我实践研究的过程,这当中也难免要走弯路的。但最终是要通往成功的大道的。其实 没必要搞得这么神秘,PLC解密没那么复杂。 1、三菱 PLC FX3U

2、 用的编程软件必须采用GX Developer8.10以上的版本,我是从网上下载个GX Developer Version8.52E就可以支持FX3U的编程。启动GX Developer,从帮助菜单就可以看到编程软件的版本号,如下图所示。 从工程菜单,创建新工程,PLC系列中选择FXCPU,PLC类型中选FX3U(C)就可以对FX3U进行编程的各种操作。 2、FX3U的加密方法是:打开GX Developer 后从菜单 在线登录关键字新建登录,改变.进入,显示如下界面: FX3U可以设置两个密码,即关键字和第2关键字,每个有8个字符(字符只能是0-F共16个16进制的字符),这样说明如果两个关

3、键字都设定的话密码总共有16个字符。这样可以组合多少种密码呢,即1616=18446744073709551616.这是个天文数字,有人想要用穷举法解密,那是不可能的。 3、首先随便编个测试程序,不加密,两个关键字都不设定,写入FX3U,然后用FXWIN软件选取FX2N型号读出程式,竟然能读出正确的程序来。相信三菱FX PLC的FXWIN程软件大家应该很熟悉了。界面如下所示: 用自编的FX三菱解密软件连线显示,FX3U PLC竟然显示成FX2N版本号为2.41,说明FX3U是FX2N的高级版本。 4、继续测试,用 GX Developer 只设定第1关键字,第2关键字为空。用自编的FX三菱解密

4、软件(可解FX0N、1N、2N、1S、FX2),进行解密。竟然解出密码来。按FX2N型号进行下载也能下载程序,说明当只设一个关键字的时候,FX3U加密机制和FX2N的是一模一样的。CP1H解密 FX3U解密 FX3G解密 FPX解密 CP1E解密CJ1M解密 CP1Eusb口解密 MT6000解密 MT8000解密 GOT1000解密看看我的FX解密软件: 5、继续测试,用 GX Developer 同时设定第1关键字,第2关键字。 这时用老的解密软件解不出来了,用老的编程软件FXGP-WIN-C,企图读入程序,显示通信错误。 6、看来只有祭出法宝了,那就是PLC解密

5、通用的法宝串口监控软件。 先启用串口监控软件,设置好开始监控,然后运行编程软件。注意顺序要搞对喔。从菜单-在线-传输设置,进入传输设置界面,然后“按通信测试”键,显示CPU类型为FX3U,通信成功。此时从串口监控到的数据是:# Time Function Data ( Hex )1 00000000 IRP_MJ_CREATE Port Opened - Gppw.exe2 00000000 IOCTL_SERIAL_SET_BAUD_RATE Baud Rate: 1152003 00000000 IOCTL_SERIAL_SET_LINE_CONTROL StopBits: 1, Pari

6、ty: Even, DataBits: 74 00000001 IRP_MJ_WRITE Length: 0001, Data: 05 5 00000002 IRP_MJ_READ Length: 0001, Data: 06 6 00000002 IRP_MJ_WRITE Length: 0011, Data: 02 30 30 45 30 32 30 32 03 36 43 7 00000003 IRP_MJ_READ Length: 0001, Data: 02 8 00000003 IRP_MJ_READ Length: 0001, Data: 42 9 00000003 IRP_MJ

7、_READ Length: 0001, Data: 31 10 00000003 IRP_MJ_READ Length: 0001, Data: 35 11 00000003 IRP_MJ_READ Length: 0001, Data: 45 12 00000003 IRP_MJ_READ Length: 0001, Data: 03 13 00000003 IRP_MJ_READ Length: 0001, Data: 46 14 00000003 IRP_MJ_READ Length: 0001, Data: 30 15 00000004 IRP_MJ_WRITE Length: 001

8、1, Data: 02 30 30 45 43 41 30 32 03 38 45 16 00000004 IRP_MJ_READ Length: 0001, Data: 02 17 00000004 IRP_MJ_READ Length: 0001, Data: 37 18 00000004 IRP_MJ_READ Length: 0001, Data: 31 19 00000004 IRP_MJ_READ Length: 0001, Data: 33 20 00000004 IRP_MJ_READ Length: 0001, Data: 46 21 00000004 IRP_MJ_READ

9、 Length: 0001, Data: 03 22 00000004 IRP_MJ_READ Length: 0001, Data: 45 23 00000004 IRP_MJ_READ Length: 0001, Data: 34 24 00000005 IRP_MJ_WRITE Length: 0011, Data: 02 30 30 45 30 32 30 32 03 36 43 25 00000006 IRP_MJ_READ Length: 0001, Data: 02 26 00000006 IRP_MJ_READ Length: 0001, Data: 42 27 0000000

10、6 IRP_MJ_READ Length: 0001, Data: 31 28 00000006 IRP_MJ_READ Length: 0001, Data: 35 29 00000006 IRP_MJ_READ Length: 0001, Data: 45 30 00000006 IRP_MJ_READ Length: 0001, Data: 03 31 00000006 IRP_MJ_READ Length: 0001, Data: 46 32 00000006 IRP_MJ_READ Length: 0001, Data: 30 33 00000006 IRP_MJ_WRITE Len

11、gth: 0011, Data: 02 30 30 45 43 41 30 32 03 38 45 34 00000007 IRP_MJ_READ Length: 0001, Data: 02 35 00000007 IRP_MJ_READ Length: 0001, Data: 37 36 00000007 IRP_MJ_READ Length: 0001, Data: 31 37 00000007 IRP_MJ_READ Length: 0001, Data: 33 38 00000007 IRP_MJ_READ Length: 0001, Data: 46 39 00000007 IRP

12、_MJ_READ Length: 0001, Data: 03 40 00000007 IRP_MJ_READ Length: 0001, Data: 45 41 00000007 IRP_MJ_READ Length: 0001, Data: 34 42 00000015 IRP_MJ_CLOSE Port Closed开始花大量时间来分析这些数据吧。 上述从串口监控到的数据是十六进制的数据,还真不好看,先转换成ASC码,就好看多了。# Time Function Data ( String )1 00000000 IRP_MJ_CREATE Port Opened - Gppw.exe2

13、00000000 IOCTL_SERIAL_SET_BAUD_RATE Baud Rate: 1152003 00000000 IOCTL_SERIAL_SET_LINE_CONTROL StopBits: 1, Parity: Even, DataBits: 74 00000001 IRP_MJ_WRITE Length: 0001, Data: 5 00000002 IRP_MJ_READ Length: 0001, Data: 6 00000002 IRP_MJ_WRITE Length: 0011, Data: 00E02026C7 00000003 IRP_MJ_READ Lengt

14、h: 0001, Data: 8 00000003 IRP_MJ_READ Length: 0001, Data: B9 00000003 IRP_MJ_READ Length: 0001, Data: 110 00000003 IRP_MJ_READ Length: 0001, Data: 511 00000003 IRP_MJ_READ Length: 0001, Data: E12 00000003 IRP_MJ_READ Length: 0001, Data: 13 00000003 IRP_MJ_READ Length: 0001, Data: F14 00000003 IRP_MJ

15、_READ Length: 0001, Data: 015 00000004 IRP_MJ_WRITE Length: 0011, Data: 00ECA028E16 00000004 IRP_MJ_READ Length: 0001, Data: 17 00000004 IRP_MJ_READ Length: 0001, Data: 718 00000004 IRP_MJ_READ Length: 0001, Data: 119 00000004 IRP_MJ_READ Length: 0001, Data: 320 00000004 IRP_MJ_READ Length: 0001, Da

16、ta: F21 00000004 IRP_MJ_READ Length: 0001, Data: 22 00000004 IRP_MJ_READ Length: 0001, Data: E23 00000004 IRP_MJ_READ Length: 0001, Data: 424 00000005 IRP_MJ_WRITE Length: 0011, Data: 00E02026C25 00000006 IRP_MJ_READ Length: 0001, Data: 26 00000006 IRP_MJ_READ Length: 0001, Data: B27 00000006 IRP_MJ

17、_READ Length: 0001, Data: 128 00000006 IRP_MJ_READ Length: 0001, Data: 529 00000006 IRP_MJ_READ Length: 0001, Data: E30 00000006 IRP_MJ_READ Length: 0001, Data: 31 00000006 IRP_MJ_READ Length: 0001, Data: F32 00000006 IRP_MJ_READ Length: 0001, Data: 033 00000006 IRP_MJ_WRITE Length: 0011, Data: 00EC

18、A028E34 00000007 IRP_MJ_READ Length: 0001, Data: 35 00000007 IRP_MJ_READ Length: 0001, Data: 736 00000007 IRP_MJ_READ Length: 0001, Data: 137 00000007 IRP_MJ_READ Length: 0001, Data: 338 00000007 IRP_MJ_READ Length: 0001, Data: F39 00000007 IRP_MJ_READ Length: 0001, Data: 40 00000007 IRP_MJ_READ Len

19、gth: 0001, Data: E41 00000007 IRP_MJ_READ Length: 0001, Data: 442 00000015 IRP_MJ_CLOSE Port Closed从上面数据看到,其实只有四个回合的数据通信,其中还有两个回合是一模一样的重复的数据。分析如下:电脑发:00E0202 查询D8001的值PLC回:B15E 回复为5EB1,回复的数据高位在后、低位在前,所以要对调个位,5EB1转为10进数据值为:24241,24表示PLC型号FX2N或3U,241表示版本号电脑发:00ECA02码 查询D8101的值PLC回:713F 回复为3F71转为10进数据值

20、为:16241,16表示PLC型号为FX3U,241表示版本号以上这一大段数据也就是编程软件查询一下PLC的型号,以便接下来按相应的通迅协议进行通迅。 7、接下来就编个简单的程序,从PLC上载程序,对上载过程的数据交换进行监控,现抄录如下:一次完整的FX3U上载程序的数据这上面我标明了通迅协议的注释,明眼人一看就明白PLC上载参数和上载程序采用的命令协议是什么。这上载参数与程序的过程中有一大段是先读取D区的数据,关于这些D区数据的意思在GX-D里有说明,我也整理出来,有助于大家理解这些参数的意义。 到了这一步,我停了好长一段时间没有研究,因为解密有时是要靠灵感的,没有灵感是没办法找到解密方法的

21、。最新资料请浏览: 经过大概半年左右,有个解密的同行,一起再探讨此事时说能不能用我们当时解松下FPX的方法试一下FX3U,于是又是几个不眠之夜,终于搞定了,可以上载程序和参数,可是当时只能是拆机。但是灵感一旦涌现,就会像泉水一样源源不断,一个又一个的设想,一次又一次的测试,终于完美搞定FX3U解密。程序、参数、内存全部OK。 上面的通迅数据中好好研究就有解密的命令喔。三菱FX3U解密软件开发成功美读出程序 参数 软元件区数据.三菱FX3Uc解密软件免费下载使用 电话联系人:周先生 QQ:121667231CP1H解密 FX3U解密 FX3G解

22、密 FPX解密 CP1E解密CJ1M解密 CP1Eusb口解密 MT6000解密 MT8000解密 GOT1000解密 NEW CP1H CP1E CP1L解密:全国独创CP1H解密直读密码 所以不存在V1.2版本的功能块被删的问题 是目前最安全的解密方式。网上目前还没有查到能直读密码的。NEW FX3U FX3UC FX3G解密:通过协议解FX3U系列PLC密码 免拆机 可以在机台上直接解密 安全可靠 也是当前PLC解密界比较好的解密方法。包括最新的禁止上传的解密。NEW FPX FPG解密:能原始算出密码 解决禁止上载的问题 保证不破坏原程序和内存(FP-X,FP

23、G等,包括禁止上载)。NEW 台达EH2 ES2解密 台达EH2 ES2等高加密产品 NEW Koyo(光洋)解密 光洋SH SH1 SM SM1 SN SZ SU SR DL-305 DL-05 DL-06系列PLC 解密。 NEW 艾默生PLC解密 EC10 EC20系列等 NEW 欧姆龙PLC解密 CQM1H CJ1M CJ1G CJ1H CS1D CS1G CS1H CP1L CP1H CP1E解密 NEW 松下GT高加密屏 GT-01 GT-32等 NEW 三菱GOT1000解密 GOT1000全系列解密 NEW 维纶通触摸屏解密MT6000解密 MT8000解密 MT6056解密

24、MT6070解密 MT8070解密 MT6100解密 MT8100解密 MT8104解密人机界面解密NEW 三菱Q系列解密Q00,Q01,Q00J,Q02,Q02H,Q06H,12H等联系方式QQ:632234468欧姆龙CP1H解密、CP1E USB口解密以及OMRON CP系列PLC加密方式的交流 欧姆龙CP1H解密、CP1E解密用232口进行的早就是已经是公开的秘密,USB口的解密现在还是凤毛麟角,从网上有人号称“国内首创USB解密“,到我今天能用USB口解密仅用14天时间,一开始我想从先行者那了解相关情况,遇到的都是技术封锁,经过充分研究后,我现在透露,其实U

25、SB解密与232解密是一模一样的原理。USB发送的命令其实在232口解密研究时,我就研究过,大家先看看下面这个多年前我写的的一个软件界面,用于时序恢复的。 因为多年前研究的sysway协议与ToolBus协议在我的软件里早就有了,校验,命令格式,早就熟悉了,现在一看USB口是同样的道理,都没有太大变化就不在活下。下面上个USB口数据的截图,内行的工控人士一看就明白了。 USB传送的数据: 下图是关于OMRON USB口的参数说明的截图: 有了上面参数,你再研究一下USB原理关于URB、IRP、BLUK/INT 、STAK、SUBMIT_URB的说明。 当然还是离不开下面这个软件: 只要你弄清楚

26、这些,那么USB接口解密你就不在话下了。 CP1H、CJM1、232口解密并直读密码,是我较早发布的,还找不到其他有人声称直读密码,现在,只有USB口的PLC我先试了不要密码的解密方法已成功了,同样也能读出密码,读出密码有什么好处呢,一是可能绕过功能块,解密安全可靠,另外,当你有多台同一个编程员编的程序,那么密码相同的可能性是80%,同时触摸屏的密码也往往和PLC一样。这样搞定一台就等于搞定全部。何乐而不为呢。 最近经常有初学者在网上询问关于如何对OMRON CP、CJ、CS系列PLC程序加密保护的问题,下面就这个问题,我们以CP1H为例共同来探讨一下,其他型号是一样的道理的。 首先,一个PL

27、C的加密程度,以及破解的难易程度,已经在一定程度影响到PLC销售的市场份额了,特别是近几年这个现象越来越明显了,特别是小型机的销售的影响,所以几大PLC品牌厂商也在玩起加密的猫捉老鼠游戏来了,比如这个CP1系统的PLC能加多少种密码呢,细细数来有5个级别的加密。而且加密的复杂程度比当年CPM系列产品成几何级别的增加。我们再来看看这5个级别的加密是什么呢,在CXP编程软件中这5种加密称为UM密、任务密,功能块密,禁止传送程到储存卡,禁止覆盖,其中前三个加密方式是采用密码加密,后两个加密是采用标志加密的。下面分析一下这5种密的作用以及如何操作,对一个已加密的PLC我们判定加密情况的方法。 OMRO

28、N PLC编程软件目前要数CXP功能最全,也是国内工控人用的最多的软件,在这软件之前,我是从当年LLS编程软件用起的,到后来SSS编程软件,这是一个中文的界面了,再来就是CPT可能就好多人知晓了,这当中还有用过SYSWIN编程软件,是从欧洲老外那得到了,功能比国内流行的CPT好,再来就是这个CXP,CXP的全称是CX-Programer,我用到的目前版本是9.2,有没有再高版本我不晓的了。闲话少说,启动CXP吧!下面这个界面大家肯定很熟悉,这是直接点击一个CXP文件,CXP就直接关连打开到这个界面,我这里是打开了一个叫N多段速cp1h.cxp文件。默认情况下CXP左边这个窗口称工作区,右边这个

29、窗口我不晓得,就叫它工作子区,下面的那个窗口叫输出。在工作区窗口里有个新工程,新工程下面有个新PLC1,右击新PLC1,有个弹出菜单,弹出菜单最下面有个属性(o)菜单。单击属性(o)菜单,在PLC属性界面,选择“保护”选项卡,我们来到了加密设置的地方。如下图。在这里你可以设UM读取密码,密码设置是8个字符,字符可以是0-9,a-z,A-Z。任务读保护密码,同样密码设置是8个字符,字符可以是0-9,a-z,A-Z。禁止存入内存卡和从PLC传送程序,可以选择V或不选择。禁止覆盖受保护程序,可以选择V或不选择。看下图,是全部选择加密的最高等级了。设定好退出,必须按按CXP软件中工具栏PLC设置保护到

30、PLC还有如下几项细节必须注意。1、设置密码有离线和在线两个情况。离线状态下,执行,这时是保护程序的任务密,只在保护电脑里的文件,并没有保护到PLC里,离线状态下,按下CPX程序中有加任务保护的程序段就被锁保护起来,看不到程序图了。没有任务保护的程序段就不加锁。如下图所示为什么有的程序加锁有的不加锁呢,这是在CP、CJ、CS这些新型OMRON PLC中引入了任务的概念。我们一起来看看CP1的编程手册上怎么讲的: 在 CP1 中,可以将程序按功能、控制对象、工序、开发者等进行划分,分割为称为任务的执行单位,可将用户程序结构化。因此具有以下优点。1 可将程序分割由多人共同开发。2 可将程序作为模块

31、实现标准化。3 提高总体的响应性能。4 修正 调试更加简便。5 程序的内务处理变得容易。6 用户程序的理解变得容易。CP1系列PLC最大能管理 288 个任务程序。其中周期执行任务32个(NO.0-31) ,中断任务256个(NO.0-255)CPU 单元对周期执行任务按其编号由小到大的顺序执行。当发生中断原因时,中止该任务的执行改而执行中断任务。之后再执行被中止的任务。上例中新程序1(00)就是周期执行任务0也叫循环任务0,新程序2(01)就是循环任务1,如果要对任务加密保护就必须右击该程序名属性保护选定任务读保护,对于没有选定任务读保护的程序,当在离线执行时,该程序就不加锁,选定任务读保护

32、的程序,该程序就加锁。加锁后程序就看不到。同时PLC属性保护中的任务密也就成星号。保存后再打开,也看不到具体的任务密。在线状态下,执行,这时保护PLC内部程序的UM密和任务密,UM密是首先被激发的,任务密加载前提条件是PLC里面的任务必须有选定任务读保护,也就是下载过任务读保护的任务,如果下载的是没有选定任务读保护,那么在线状态下,执行,将提示无法加密任务密,必须重新下载有任务保护的程序。2、UM密码和任务密最多可以设8位字符,包括0-9的数字,a-Z,26个字母分大小写不一样,加载了UM密,PLC里面的程序就被保护,没有解除密码,PLC程序将无法上载。加载了任务密后,PLC程序即使上载了,也

33、会在程序中显示加锁状态,不能看到程序。3、设置禁止存入内存卡和从PLC传送程序和禁止覆盖受保护程序,必须程序重新传送到PLC一次,才能生效。关于禁止存入内存卡和从PLC传送程序说明,经常有人问内存卡什么样,什么型号,装在哪里呢。OMRON储存卡型号是:CP1W-ME05M什么样子,我上个图,你就明白了。CP1W-ME05M是容量为8M的储存卡。如果没有勾选“禁止存入内存卡”,那么PLC的程序可以传送到储存卡里备份,当PLC已经设置了UM密、任务密,传送到储存卡里的程序同样会有UM密、任务密,如果勾选设置“禁止存入内存卡”,那么PLC的程序就不可以传送到卡里备份。关于禁止覆盖受保护程序说明,如果

34、没有勾选“禁止覆盖受保护程序”,那么如果想清除PLC的程序,可以从PLC的菜单选择清除PLC,或者传送一个空白程序到PLC中,当勾选“禁止覆盖受保护程序”,同时PLC又有UM密、任务密时,没有解除密码前就清除不了PLC里的程序,想用一个新的程序覆盖也不行,就是禁止写入的意思。当采用这种“禁止覆盖受保护程序”时,如果你忘记了密码,又没有空白的储存卡,那就非常非常麻烦了,你就是想把程序清空都难。这时只有一个办法,突然灵感一动想起密码,哈哈,用储存卡清除禁止覆盖受保护程序,是把储存卡里的程序在PLC通电一瞬间传入覆盖PLC程序,当然原程序就变没有了,储存卡里的程序最好是空白的,这样就清除了,如果储存卡里的程序是有密码的和禁止覆盖,那么传送后仍旧是禁止覆盖和加密的。还有一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论