📄 12426.html
字号:
<html>
<head>
<title>Re: 虽然不太可能...还是</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>Re: 虽然不太可能...还是</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:honey0@tcts1.seed.net.tw">Honey</a> on April 27, 1999 at 23:35:09:<p>
In Reply to: <a href="12399.html">Re: 虽然不太可能...还是</a> posted by adan on April 26, 1999 at 23:23:11:<p>
: 感谢honey支持,但是很多人使用者的名称都是设为abc或者123等等的,可自由设定,所以可行性可能不高<br>: 至于密码,我猜微软在存于登录资料库时可能有编码过,这倒无所谓,只要独一无二即可,其实连线帐号之帐号name也可以(有编码过也可),唯独在登录资料库我一直找不到这东西<br>windows 序号放在<br>HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION<br>中 ProductID 的值<br>而微软密码也的确编码过放在<br>HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\Network\LanMan<br>中Parmlenc是完全存取密码 ,Parm2enc是唯读密码 <br>而解码方式提供你以下程式<br>#include <stdio.h><br>#include <string.h><br>#define BUFFER 30<br>int DecodeCharOne(unsigned char *);<br>int DecodeCharTwo(unsigned char *);<br>int DecodeCharThree(unsigned char *);<br>int DecodeCharFour(unsigned char *);<br>int DecodeCharFive(unsigned char *);<br>int DecodeCharSix(unsigned char *);<br>int DecodeCharSeven(unsigned char *);<br>int DecodeCharEight(unsigned char *);<p>main() {<p> int i; <br> int eocc = 0;<br> unsigned char mybytes[] = { 0x15, 0xba, 0x6d, 0x86, 0x73, 0x89, 0xf4, 0x4a };<br> unsigned short tempshort; <br> int goupto = 0;<br> /* 输入密码 */<br> char inpt[BUFFER];<br> char *inptptr;<br> printf("Input the byte code in hex (ex: 76 d5 09 e3): ");<br> fgets(inpt, BUFFER, stdin); inptptr = strtok(inpt, " "); if (inpt[0] != '\n') while ((inptptr != NULL) && (goupto < 8)) {<br> sscanf(inptptr, "%hx", &tempshort);<br> mybytes[goupto++] = tempshort;<br> inptptr = strtok(NULL, " ");<br> }<br> /* 开始解码 */<br> if (!DecodeCharOne(&mybytes[0])) eocc = 1;<br> if (!DecodeCharTwo(&mybytes[1])) eocc = 1;<br> if (!DecodeCharThree(&mybytes[2])) eocc = 1;<br> if (!DecodeCharFour(&mybytes[3])) eocc = 1;<br> if (!DecodeCharFive(&mybytes[4])) eocc = 1;<br> if (!DecodeCharSix(&mybytes[5])) eocc = 1;<br> if (!DecodeCharSeven(&mybytes[6])) eocc = 1;<br> if (!DecodeCharEight(&mybytes[7])) eocc = 1;<p> /* If the password could be decoded, print it */<br> if (eocc) printf("The encrypted password is invalid.\n");<br> else {<br> printf("The decoded password is: \"");<br> for (i = 0; i < goupto; i++) printf("%c",mybytes[i]);<br> printf("\"\n");<br> }<br>} <br>int DecodeCharOne(unsigned char *mychar) {<br> int i = 0; <br> int cletter = 1; <br> int blockl1 = 1; int blockl2 = 1; int retval = 1; unsigned char code = 0x15; <br> while((i<256) && (code != *mychar)) {<br> switch (cletter) {<br> case 1:<br> code--; cletter++; break;<br> case 2: code += 3; cletter++; break;<br> case 3:<br> code--; cletter++; break;<br> case 4:<br> code -= 5; cletter++; break;<br> case 5:<br> code--; cletter++; break;<br> case 6:<br> code+=3; cletter++; break;<br> case 7:<br> code--; cletter++; break;<br> case 8:<br> cletter = 1; switch (blockl1) { <br> case 1: code += 11; blockl1++; break; case 2: code -= 21; blockl1++; break; case 3:<br> code += 11; blockl1++; break; case 4:<br> blockl1 = 1;<br> switch (blockl2) { <br> case 1: code = 0x75; blockl2++; break; case 2: code = 0x55; blockl2++; break; case 3:<br> code = 0xb5; blockl2++; break; case 4:<br> code = 0x15; blockl2 = 1; break; } break;<br> }<br> break; } i++; } if (i == 256) retval = 0;<br> else *mychar = i + 32;<br> return retval;<br>} <p>int DecodeCharTwo(unsigned char *mychar) {<br> int i = 0;<br> int cletter = 1;<br> int blockl1 = 1;<br> int blockl2 = 1;<br> int retval = 1;<br> unsigned char code = 0xba; /* The code for a space */<br> while((i<256) && (code != *mychar)) {<br> switch (cletter) {<br> case 1:<br> code++; cletter++; break;<br> case 2:<br> code -= 3; cletter++; break;<br> case 3: code++; cletter++; break;<br> case 4: code += 5; cletter++; break;<br> case 5: code++; cletter++; break;<br> case 6:<br> code -= 3; cletter++; break;<br> case 7:<br> code++; cletter++; break;<br> case 8:<br> cletter = 1; switch (blockl1) {<br> case 1:<br> code -= 11; blockl1++; break;<br> case 2:<br> code -= 11; blockl1++; break;<br> case 3:<br> code -= 11; blockl1++; break; case 4:<br> blockl1 = 1;<br> switch (blockl2) { case 1:<br> code = 0xda; blockl2++; break; case 2:<br> code = 0xfa; blockl2++; break;<br> case 3:<br> code = 0x1a; blockl2++; break; case 4: code = 0xba;<br> blockl2 = 1; break; } break;<br> }<br> break; } i++; } if (i == 256) retval = 0;<br> else *mychar = i + 32;<br> return retval;<br>} <p>int DecodeCharThree(unsigned char *mychar) {<br> int i = 0;<br> int cletter = 1;<br> int blockl1 = 1;<br> int blockl2 = 1;<br> int retval = 1;<br> unsigned char code = 0x6d; /* The code for a space */<br> while((i<256) && (code != *mychar)) {<br> switch (cletter) {<br> case 1:<br> code--; cletter++; break;<br> case 2:<br> code += 3; cletter++; break;<br> case 3:<br> code--; cletter++; break;<br> case 4: code -= 5; cletter++; break;<br> case 5: code--; cletter++; break;<br> case 6: code += 3; cletter++; break;<br> case 7: code--; cletter++; break;<br> case 8:<br> cletter = 1;<br> switch (blockl1) {<br> case 1:<br> code -= 5; blockl1++; break;<br> case 2:<br> code += 27; blockl1++; break;<br> case 3:<br> code -= 5; blockl1++; break;<br> case 4: blockl1 = 1;<br> switch (blockl2) {<br> case 1:<br> code = 0x0d; blockl2++; break;<br> case 2:<br> code = 0x2d; blockl2++; break;<br> case 3:<br> code = 0xcd; blockl2++; break; case 4: code = 0x6d; blockl2 = 1; break; } break; } break;<br> }<br> i++;<br> }<br> if (i == 256) retval = 0; else *mychar = i + 32;<br> return retval;<br>} <br>int DecodeCharFour(unsigned char *mychar) {<br> int i = 0;<br> int cletter = 1;<br> int blockl1 = 1;<br> int blockl2 = 1;<br> int retval = 1;<br> unsigned char code = 0x86; /* The code for a space */<br> while((i<256) && (code != *mychar)) {<br> switch (cletter) {<br> case 1:<br> code++; cletter++; break;<br> case 2:<br> code -= 3; cletter++; break;<br> case 3:<br> code++; cletter++; break;<br> case 4:<br> code -= 3; cletter++; break;<br> case 5: code++; cletter++; break;<br> case 6: code -= 3; cletter++; break;<br> case 7: code++; cletter++; break;<br> case 8: cletter = 1;<br> switch (blockl1) {<br> case 1: code += 13; blockl1++; break;<br> case 2: code += 13; blockl1++; break; case 3: code += 13; blockl1++; break;<br> case 4:<br> blockl1 = 1;<br> switch (blockl2) {<br> case 1: code = 0xe6; blockl2++; break;<br> case 2: code = 0xc6; blockl2++; break;<br> case 3: code = 0x26; blockl2++; break;<br> case 4:<br> code = 0x86; blockl2 = 1; break; } break; }<br> break;<br> } i++; } if (i == 256) retval = 0;<br> else *mychar = i + 32;<br> return retval;} int DecodeCharFive(unsigned char *mychar) {<br> int i = 0; int cletter = 1; int blockl1 = 1;<br> int blockl2 = 1;<br> int retval = 1;<br> unsigned char code = 0x73; /* The code for a space */<br> while((i<256) && (code != *mychar)) {<br> switch (cletter) {<br> case 1:<br> code--; cletter++; break;<br> case 2:<br> code--; cletter++; break;<br> case 3:<br> code--; cletter++; break;<br> case 4:<br> code += 7; cletter++; break;<br> case 5:<br> code--; cletter++; break;<br> case 6: code--; cletter++; break;<br> case 7: code--; cletter++; break;<br> case 8: cletter = 1;<br> switch (blockl1) {<br> case 1: code += 7; blockl1++; break;<br> case 2:<br> code -= 25; blockl1++; break;<br> case 3: code += 7; blockl1++; break;<br> case 4: blockl1 = 1;<br> switch (blockl2) {<br> case 1:<br> code = 0x13; blockl2++; break;<br> case 2:<br> code = 0x33; blockl2++; break;<br> case 3: code = 0x23; blockl2++; break;<br> case 4: code = 0x73; blockl2 = 1; break;<br> }<br> break;<br> }<br> break;<br> } i++; } if (i == 256) retval = 0;<br> else *mychar = i + 32; return retval;} int DecodeCharSix(unsigned char *mychar) { int i = 0; int cletter = 1; int blockl1 = 1;<br> int blockl2 = 1; int retval = 1; unsigned char code = 0x89; /* The code for a space */<br> while((i<256) && (code != *mychar)) {<br> switch (cletter) {<br> case 1:<br> code--;<br> cletter++;<br> break;<br> case 2:<br> code += 3;<br> cletter++;<br> break;<br> case 3:<br> code--;<br> cletter++;<br> break;<br> case 4:<br> code += 3;<br> cletter++;<br> break;<br> case 5:<br> code--;<br> cletter++;<br> break;<br> case 6:<br> code += 3;<br> cletter++;<br> break;<br> case 7:<br> code--;<br> cletter++;<br> break;<br> case 8:<br> cletter = 1;<br> switch (blockl1) {<br> case 1:<br> code -= 13;<br> blockl1++;<br> break;<br> case 2:<br> code += 19;<br> blockl1++;<br> break;<br> case 3:<br> code -= 13;<br> blockl1++;<br> break;<br> case 4:<br> blockl1 = 1;<br> switch (blockl2) {<br> case 1:<br> code = 0xe9;<br> blockl2++;<br> break;<br> case 2:<br> code = 0xc9;<br> blockl2++;<br> break;<br> case 3:<br> code = 0x29;<br> blockl2++;<br> break;<br> case 4:<br> code = 0x89;<br> blockl2 = 1;<br> break;<br> }<br> break;<br> }<br> break;<br> }<br> i++;<br> }<br> if (i == 256) retval = 0;<br> else *mychar = i + 32;<br> return retval;<br>} /* End of DecodeCharSix() */<p>int DecodeCharSeven(unsigned char *mychar) {<br> int i = 0;<br> int cletter = 1;<br> int blockl1 = 1;<br> int blockl2 = 1;<br> int retval = 1;<br> unsigned char code = 0xf4; /* The code for a space */<br> while((i<256) && (code != *mychar)) {<br> switch (cletter) {<br> case 1:<br> code++; cletter++; break;<br> case 2:<br> code++; cletter++; break;<br> case 3:<br> code++; cletter++; break;<br> case 4:<br> code -= 7; cletter++; break;<br> case 5:<br> code++; cletter++; break;<br> case 6:<br> code++; cletter++; break;<br> case 7:<br> code++; cletter++; break;<br> case 8:<br> cletter = 1;<br> switch (blockl1) {<br> case 1:<br> code += 9; blockl1++; break;<br> case 2:<br> code -= 23; blockl1++; break; case 3:<br> code += 9; blockl1++; break; case 4:<br> blockl1 = 1;<br> switch (blockl2) {<br> case 1: code = 0x94; blockl2++; break;<br> case 2: code = 0xb4; blockl2++; break;<br> case 3: code = 0x54; blockl2++; break;<br> case 4:<br> code = 0xf4; blockl2 = 1; break;<br> }<br> break; } break;<br> }<br> i++; } if (i == 256) retval = 0;<br> else *mychar = i + 32;<br> return retval;} int DecodeCharEight(unsigned char *mychar) {<br> int i = 0;<br> int cletter = 1; int blockl1 = 1; int blockl2 = 1;<br> int retval = 1; unsigned char code = 0x4a; /* The code for a space */ while((i<256) && (code != *mychar)) {<br> switch (cletter) { case 1: code++; cletter++; break;<br> case 2:<br> code -= 3; cletter++; break;<br> case 3:<br> code++; cletter++; break;<br> case 4:<br> code += 5; cletter++; break;<br> case 5:<br> code++; cletter++; break;<br> case 6:<br> code -= 3; cletter++; break;<br> case 7:<br> code++; cletter++; break;<br> case 8:<br> cletter = 1;<br> switch (blockl1) { case 1:<br> code -= 11;<br> blockl1++;<br> break;<br> case 2: code += 21; blockl1++; break;<br> case 3:<br> code -= 11; blockl1++; break;<br> case 4:<br> blockl1 = 1;<br> switch (blockl2) {<br> case 1:<br> code = 0x2a; blockl2++; break; case 2:<br> code = 0x0a; blockl2++; break; case 3: code = 0xea; blockl2++; break;<br> case 4: code = 0x4a; blockl2 = 1; break;<br> }<br> break;<br> }<br> break;<br> }<br> i++;<br> }<br> if (i == 256) retval = 0;<br> else *mychar = i + 32;<br> return retval;}<p><br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 12426-->
</ul><!--end: 12426-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -