15355.html

来自「以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题」· HTML 代码 · 共 23 行

HTML
23
字号
<html>
  <head>
    <title>Windows 不可能提供这种函数</title>
  </head>
  <body bgcolor="#FFFFFF" vlink="#808080">
    <center>
      <h1>Windows 不可能提供这种函数</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 July 08, 1999 at 08:13:49:<p>
In Reply to: <a href="15298.html">SOS-有谁知道如何取得Windows Login的密码?</a> posted by 融融 on July 06, 1999 at 19:57:29:<p>
: 我对API的运用不熟,十分感谢前辈已有Login 的User Name的范例,但才输学浅的我,<br>: 还想知道如何才可取得密码,感激不尽!<br>Win32 API不可能提供这种函数 否则哪有安全性可言<br>这种东西一定得自己写 我只解过Windows 95 <br>Windows 98 解法不一定是这样 我现在用的是Windows 95<br>也没办法去试试98 ,NT 编码方式又更烦 懒得去解<br>只提供你95的解法 你可以用RegEdit.exe 之类的编辑器去<br>开启Windows的登录资料库<br>在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows<br>\CurrentVersion\Network\LanMan<br>取得两个Parm开头enc结尾的16进位值 将这个值交给底下程式解码 便可得到答案<br>若真的要用vb做 读取登录资料库应该会吧<br>底下这些 你可以把他翻成Basic 或把他编译成dll用vb去link<br>老实讲 这种问题用C会比Basic好解多了<p>#include <stdio.h><br>#include <string.h><br>#define BUFFER 30<br>int DeCode1(unsigned char *);<br>int DeCode2(unsigned char *);<br>int DeCode3(unsigned char *);<br>int DeCode4(unsigned char *);<br>int DeCode5(unsigned char *);<br>int DeCode6(unsigned char *);<br>int DeCode7(unsigned char *);<br>int DeCode8(unsigned char *);<p>main() {<p>  int i;           <br>  int te = 0;<br>  unsigned char Demp[] = { 0x15, 0xba, 0x6d, 0x86, 0x73, 0x89, 0xf4, 0x4a };<br>  unsigned short tempshort;   <br>  int j = 0;<br>  char hputin[BUFFER];<br>  char *bputin;<br>  printf("Input the byte code (16bit): ");<br>  fgets(hputin, BUFFER, stdin);<br>  bputin = strtok(hputin, " ");<br>  if (hputin[0] != '\n')/*这时密码是""*/<br>    while ((bputin != NULL) && (j < 8)) {<br>      sscanf(bputin, "%hx", &tempshort);<br>      Demp[j++] = tempshort;<br>      bputin = strtok(NULL, " ");<br>    }<br>  /* 开始解码 */<br>  if (!DeCode1(&Demp[0])) te = 1;<br>  if (!DeCode2(&Demp[1])) te = 1;<br>  if (!DeCode3(&Demp[2])) te = 1;<br>  if (!DeCode4(&Demp[3])) te = 1;<br>  if (!DeCode5(&Demp[4])) te = 1;<br>  if (!DeCode6(&Demp[5])) te = 1;<br>  if (!DeCode7(&Demp[6])) te = 1;<br>  if (!DeCode8(&Demp[7])) te = 1;<p>  /* If the password could be decoded, print it */<br>  if (te) printf("The encrypted password is invalid.\n");<br>  else {<br>    printf("The decoded password is: \"");<br>    for (i = 0; i < j; i++) <br>    printf("%c",Demp[i]);<br>    printf("\"\n");<br>  }<br>}  <p>int DeCode1(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 = 0x15;    <br>    <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 -= 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) {   <br>      case 1:               <br>	code += 11;	blockl1++;	break;<br>      case 2:<br>	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 = 0x75;	  blockl2++;	  break;<br>	case 2:<br>		  code = 0x55;	  blockl2++;	  break;<br>	case 3:<br>		  code = 0xb5;	  blockl2++;	  break;<br>	case 4:<br>		  code = 0x15;	  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;<br>}  <p>int DeCode2(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:<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) {<br>      case 1:<br>      	code -= 11;	blockl1++;	break;<br>      case 2:<br>	code -= 11;	blockl1++;	break;<br>      case 3:<br>	code -= 11;	blockl1++;	break;<br>      case 4:<br>	blockl1 = 1;<br>	switch (blockl2) {<br>		case 1:<br>	  code = 0xda;	  blockl2++;	  break;<br>	case 2:<br>		  code = 0xfa;	  blockl2++;	  break;<br>	case 3:<br>	  code = 0x1a;	  blockl2++;	  break;<br>	case 4:<br>	  code = 0xba;<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>}  <p>int DeCode3(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:<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) {<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:<br>	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;<br>	case 4:<br>              code = 0x6d;	  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;<br>}  <br>int DeCode4(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:<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) {<br>      case 1:<br>        code += 13;        blockl1++;	break;<br>      case 2:<br>        code += 13;        blockl1++;        break;<br>      case 3:<br>        code += 13;        blockl1++;        break;<br>      case 4:<br>	blockl1 = 1;<br>		switch (blockl2) {<br>	case 1:<br>          code = 0xe6;          blockl2++;	  break;<br>	case 2:<br>          code = 0xc6;          blockl2++;          break;<br>	case 3:<br>          code = 0x26;          blockl2++;          break;<br>	case 4:<br>		  code = 0x86;          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;<br>}  <p>int DeCode5(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 = 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:<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 += 7;	blockl1++;	break;<br>      case 2:<br>        code -= 25;        blockl1++;        break;<br>      case 3:<br>        code += 7;	blockl1++;        break;<br>      case 4:<br>	blockl1 = 1;<br>		switch (blockl2) {<br>	case 1:<br>          code = 0x13;          blockl2++;	  break;<br>	case 2:<br>          code = 0x33;          blockl2++;          break;<br>	case 3:<br>          code = 0x23;          blockl2++;	  break;<br>	case 4:<br>	  code = 0x73;          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;<br>}    <p>int DeCode6(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 = 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 DeCode7(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;<br>      case 3:<br>        code += 9;	blockl1++;	break;<br>      case 4:<br>	blockl1 = 1;<br>		switch (blockl2) {<br>	case 1:<br>          code = 0x94;	  blockl2++;	  break;<br>	case 2:<br>          code = 0xb4;	  blockl2++;	  break;<br>	case 3:<br>          code = 0x54;	  blockl2++;	  break;<br>	case 4:<br>		  code = 0xf4;          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;<br>}  <p>int DeCode8(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 = 0x4a;    /* 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 += 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) {<br>       case 1:<br>	 code -= 11;<br>		 blockl1++;<br>	 break;<br>       case 2:<br>		 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;<br>	 case 2:<br>		   code = 0x0a;	   blockl2++;	   break;<br>	 case 3:<br>		   code = 0xea;	   blockl2++;	   break;<br>	 case 4:<br>		   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;<br>}<br>
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 15355-->
</ul><!--end: 15355-->
<br><hr size=7 width=75%><p>

</body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?