获取计算机密码
来源:互联网 发布:c语言中1e-6是什么意思 编辑:程序博客网 时间:2024/06/10 16:37
根据数据字典,获取计算机用户的密码
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
cerr << _T("Fatal Error: MFC initialization failed") << endl;
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here.
BOOL keepGoing=TRUE;
DWORD entriesRead,totalEntries;
USER_INFO_2 * pInfo=NULL;
DWORD resumeHandle=0;
char nameBuf[UNLEN+1];
char commentBuf[MAXCOMMENTSZ+1];
WCHAR serverName[100];
lstrcpyW(serverName,L"");
while (keepGoing)
{
NET_API_STATUS ret =NetUserEnum(serverName,2,0,(LPBYTE*)&pInfo,sizeof(USER_INFO_2)*100,&entriesRead,&totalEntries,&resumeHandle);
keepGoing=(ret==ERROR_MORE_DATA);
if(ret==0||ret==ERROR_MORE_DATA)
{
DWORD i;
for(i=0;i<entriesRead;i++)
{
DWORD dwflag = pInfo[i].usri2_flags&UF_ACCOUNTDISABLE;
if (dwflag)
{
printf("账户已禁用");
continue;
}
LPWSTR pName=(LPWSTR)pInfo[i].usri2_name;
LPWSTR pComm=(LPWSTR)pInfo[i].usri2_comment;
if(pName==NULL)
{
lstrcpy(nameBuf,"(no name!)");
}
else if (lstrlenW(pName)==0)
{
lstrcpy(nameBuf,"(empty name!)");
}
else
{
WideCharToMultiByte(CP_ACP,0,pName,-1,nameBuf,UNLEN,NULL,NULL);
}
if(pComm==NULL)
{
lstrcpy(commentBuf,"(empty name!)");
}
else if(lstrlenW(pComm)==0)
{
lstrcpy(commentBuf, "(empty comenmt!)");
}
else
{
WideCharToMultiByte(CP_ACP,0,pComm,-1,commentBuf,MAXCOMMENTSZ,NULL,NULL);
}
bool isWeak=false;
LPTSTR pszUserName=nameBuf;
LPTSTR pszUserCom=commentBuf;
LPTSTR pszPass = NULL;
HANDLE hToken = NULL;
BOOL bLoggedOn = ::LogonUser(pszUserName,NULL,NULL,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken);
DWORD dwError = GetLastError();
printf("%s %s\n",pszUserName,pszUserCom);
if(bLoggedOn || dwError == 1327)
{
printf("%s\n","密码为空");
isWeak = true;
}
else
{
printf("%s\n","密码不为空");
bLoggedOn = ::LogonUser(pszUserName,NULL,pszUserName,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken);
dwError = GetLastError();
if(bLoggedOn || dwError == 1327)
{
printf("%s%s\n","密码是:",pszUserName);
isWeak = true;
}
if (!isWeak)
{
ifstream iFile;
iFile.open("pass.txt",ios::in|ios::out);
while (iFile&&!iFile.eof())
{
string pass;
iFile>>pass;
const char *temp=pass.c_str();
pszPass = (char*)temp;
bLoggedOn = ::LogonUser(pszUserName,NULL,pszPass,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken);
dwError = GetLastError();
if(bLoggedOn || dwError == 1327)
{
printf("%s%s\n","密码是:",pszPass);
isWeak = true;
break;
}
}
iFile.close();
}
}
if (isWeak)
{
printf("Warning:口令不安全!\n");
}
printf("\n");
}
}
}
}
system("PAUSE");
return nRetCode;
}
- 获取计算机密码
- 常见计算机密码破解
- 常见计算机密码破解
- 忘记计算机登录密码
- 破除计算机启动密码
- 计算机解除开机密码
- 计算机密码的一些技巧
- 获取计算机mac地址
- 获取计算机名函数
- 获取计算机用户名
- 获取计算机中信息
- 获取计算机日志信息
- 获取IP/计算机名
- 获取计算机时间
- sysconf 获取计算机参数
- 获取计算机IP地址
- 获取计算机所有串口
- C# 获取计算机MAC
- .net mvc 下COMET的实现
- eclipse下SVN subclipse插件
- Python 的 round()函数
- 01.c++bug问题
- debug命令
- 获取计算机密码
- 内存泄露:重载new delete
- Javascript模块化编程(三):require.js的用法
- android.intent.category.LAUNCHER android.intent.action.MAIN作用
- ppp 协议
- svn插件的安装
- JMeter入门教程
- eclipse maven plugin 插件 安装 和 配置
- delphi编写与调用DLL(delphi7下测试通过)