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、试用版的,但也是可以破解的版本范围有限且未注册的只能看密码后三位,如果解出的也是乱码则此软件不适用。

四、

相关文档
最新文档