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 + -
显示快捷键?