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; }