FANUC_PMC梯形图密码破解
FANUC PMC梯形图密码破解
有些机床厂家对梯形图加密以防用户查看及更改,既然设了密码基本上是不会告诉你的,除非关系相当好。这样的话对维修及改机造成一定的麻烦,查看或改个端口也要找他们,而且还要付出比较可观的服务费用。
网上搜集的破解方法:
一、FANUC旧版本等采用如下计算方法:
1、先确定密码的长度,根据如下规则:
要解的加密程序由于密码长度不可能为0,根据如下规则确定密码位数,找到它们比较从最后一位开始比一致的位数确定不一致的位数
0000031eh: CD A2 BC 8A A6 80 B6 A6
00000340h: CD A2 BC 8A A6 80 B6 A6
2、再确定所有的加密字节是否比BF值大,如果比它大则用第三步的方法,
如果没有它大则用如下方法:
0000031eh: BC B2 AC 9A B6 90 A6 B6
00000340h: BC B2 AC 9A B6 90 A6 B6
将每位的值与以上相应位进行逻辑异或运算,得出的值就是相应位的密码字。
3、所有的加密字节是否比BF值大,则用如下方法:
0000031eh: CD C3 DD EB C7 E1 D7 C7
00000340h: CD C3 DD EB C7 E1 D7 C7
将每位的值与以上相应位进行逻辑异或运算,得出的值再与1进行异或运算,得出的一个新值N,在字母表中找到第N个字母。该字母就是相应位的密码字。
注:0000031eh该地址后的连续8个字节就是可改写密码
00000340h该地址后的连续8个字节就是可显示密码。
附录:一些密码和已加密字。
NO PASSWORD&NO SET
0000031eh: 78 D1 C0 8B A1 19 00 B1
00000340h: F8 00 C0 8B A1 19 00 02
兴平
HAVEP123
HAVEPLXY
0000031eh: C0 DA C5 8A A6 80 B6 A6
00000340h: BD B0 AF 8A A6 80 B6 A6 6A 20
NO PASSWORD& have PASSWORD SET
0000031eh: AB DD 86 F7 2E B1 F7 24
00000340h: 4B 2A DF F2 24 6F 43 E3
HAVE P9*******
HAVE P9*******
0000031eh: B5 BB A5 93 BF 99 AF BF
00000340h: B5 BB A5 93 BF 99 AF BF
HAVEP00000000
HAVEP00000000
0000031eh: BC B2 AC 9A B6 90 A6 B6 00000340h: BC B2 AC 9A B6 90 A6 B6 HAVEPAAAAAAAA
HAVEPAAAAAAAA
0000031eh: CD C3 DD EB C7 E1 D7 C7 00000340h: CD C3 DD EB C7 E1 D7 C7 HavePZZZZZZZZ
HAVEPZZZZZZZZ
0000031eh: D6 D8 C6 F0 DC FA CC DC 00000340h: D6 D8 C6 F0 DC FA CC DC HAVEPBBBBBBBB
HAVEPBBBBBBBB
0000031eh: CE C0 DE E8 C4 E2 D4 C4 00000340h: CE C0 DE E8 C4 E2 D4 C4 HAVEPABCDEFG
0000031eh: CD C0 DF EE C3 E6 D1 A6 00000340h: CD C0 DF EE C3 E6 D1 A6 HAVEP12345678
HAVEP12345678
0000031eh: BD B0 AF 9E B3 96 A1 BE 00000340h: BD B0 AF 9E B3 96 A1 BE HAVEP098765432
HAVEP098765432
0000031eh: BC BB A4 9D B0 95 A2 B5 00000340h: BC BB A4 9D B0 95 A2 B5 HAVEP123
HAVEP456
0000031eh: B8 B7 AA 8A A6 80 B6 A6 00000340h: BD B0 AF 8A A6 80 B6 A6 HAVEP0
HAVEP0
0000031eh: BC A2 BC 8A A6 80 B6 A6 00000340h: BC A2 BC 8A A6 80 B6 A6 HAVEP0
HAVENP
0000031eh: CE 79 91 FE 9A 95 35 C5 00000340h: BC A2 BC 8A A6 80 B6 A6 HAVENP
HAVEP0
0000031eh: BC A2 BC 8A A6 80 B6 A6 00000340h: FA 36 90 11 61 A5 88 A0 HAVEPA
HAVEPA
0000031eh: CD A2 BC 8A A6 80 B6 A6
00000340h: CD A2 BC 8A A6 80 B6 A6
具体操作步骤是
1.把机床梯形图用CF卡传出
2.用反汇编软件URSoftW32Dasm打开,会看到文件按16进制(每8个一行排
列)
3.找到310e和340后,进行比较,算出密码位。
4.把310e和340两组进行与你提供的数据运算(转成二进制)
5.密码出来了。
二、用C++语言程序自编运行软件来破解FANUC旧版本
1、流程框图:
2、读取显示许可密码C++源程序如下:
#include "stdio.h"
char disp[9];
FILE *fp1;
main()
{
char fname[20]="pmc-sb.000";
int f=0;
if((fp1=fopen(fname,"rb"))==0)
exit(1);
pread();
f=pncount(disp);
password(disp,f);
printf("\n\n\n\t\tDisplay Password=%s",disp);
getch();
fclose(fp1);
}
int password(char *s,int n)
{
char pwnumber[]={0xBC,0xB2,0xAC,0x9A, 0xB6,0x90,0xA6,0xB6}; char pwabc[]={0xCD,0xC3,0xDD,0xEB, 0xC7,0xE1,0xD7,0xC7}; char ch1,ch2,ch3; int i;
for(i=0;i { if(i==0&&s[0]-'0'== -129) s[i]= '#'; else { ch1=s[i]^pwnumber[i]; if(ch1>9) {ch1=s[i]^pwabc[i]; ch1=ch1^0x0001; s[i]=ch1-1+'A'; } else s[i]=ch1+'0'; } } s[i]=0; } int pncount(char *s) { char pwno[]={0xCD,0xA2,0xBC,0x8A,0xA6, 0x80,0xB6,0xA6}; int i,j,k; k=8; for(i=7;i;i--) if(pwno[i]==s[i]) k--; else break; return k; } int pread() { long int d=832; fseek(fp1, d, SEEK_SET); if(fread(disp, 1, 8, fp1)!=8) { printf("Read Display password error"); exit(2); /*判断是否读了8个数,出错则退出*/ } } /*注:以上程序在Turbo C++ 3.0测试通过*/ 生成的可执行文件请点以下链接,CF卡传出的文件请务必先改为pmc-sb.000后将此exe文件一起放在C盘根目录下,如果算出的密码为乱码则用此方法不行。 FANUC 旧版本PMC解密.zip 三、新旧版本用商业软件破解 1、网上流传几种版本的软件,大部分是试用版,需要付款注册,这本身是无可厚非的,软件作者付出劳动本应得到回报。有一款是绿色版的,但破解的版本范围有限,请见链接: FANUC PMC密码破解软件2.zip 2、试用版的,但也是可以破解的版本范围有限且未注册的只能看密码后三位,如果解出的也是乱码则此软件不适用。 四、