Natavenie hesla Administrátorského a užívateľského účtu.
Navrhol som si veľmi peknú funkciu na zaheslovanie aktuálneho uživateľského konta. Názov uživateľského konta vyvolám funkciou ::getenv("USERNAME");
Hlavnym jadrom je funkcia NetUserSetInfo, ktorá pri kóde levelu 1003 zabezpečí nastavenie daného hesla, ktoré je do funkcie zavedené.
void SetSystemPassword(::std::string input_password)
{
USES_CONVERSION_EX;
::std::string input_username[] = {::getenv("USERNAME"), "Administrator"};
int input_username_size = sizeof(input_username)/sizeof(::std::string);
::LPWSTR password = A2W_EX(input_password.c_str(), input_password.length());
for(int i = 0; i<input_username_size; i++)
{
::LPWSTR username = A2W_EX(input_username[i].c_str(), input_username[i].length());
USER_INFO_1003 usriSetPassword;
usriSetPassword.usri1003_password = password;
::NetUserSetInfo(NULL, username, UserInfoPassword, (::LPBYTE)&usriSetPassword, NULL);
}
}
Funkcia môzž byť vyvolaná z mainu ako:
#include "WinAPI.h" //https://https://www.netbot.sk/sk/14-blog-headers/31-winapi
#define UserInfoPassword 1003
int _cdecl main(void)
{
SetSystemPassword ("diallix");
return 0;
}
-----------------------------------------------------------------
Celá funkcia je zakonpovaná do headeru WinAPI.h ►WinAPI.h◄
#include "WinAPI.h" //https://www.netbot.sk/sk/14-blog-headers/31-winapi
int _cdecl main (void)
{
::Diall_WinApi::WinApi::GetInstance()->SystemIntegrity(::Diall_WinApi::Privilege::ENABLE);
::Diall_WinApi::WinApi::GetInstance()->SetSystemPassword("Diallix");
return 0;
}