Ломаем структуры Мысла Владислав Спецвыпуск Xakep, номер #045, стр. 045-036-4 Напоследок хотелось бы напомнить, что статья рассчитана на программистов, которые решили повысить уровень безопасности в своих приложениях. Все, о чем ты прочитал, носит только информативный характер и не должно быть использовано в незаконных целях. Реализация аутентификации с помощью классов class credentials { private: bool admin; public: char name[0x10]; char pass[0x10]; public: SetCredentials(char* _name, char* _pass ); virtual void Administrate(); private: virtual void Admin(); }; credentials::SetCredentials(char* _name, char* _pass ) { memcpy( name, _name, strlen(_name) ); memcpy( pass, _pass, strlen(_pass) ); name[strlen(_name)] = '\0'; pass[strlen(_pass)] = '\0'; admin = false; } void credentials::Administrate() { if( !strcmp(name,"adm") && !strcmp(pass,"adm") ) { Admin(); } ....... } int _tmain(int argc, _TCHAR* argv[]) { ...... bool TwoUsers = false; if( argc==5 ) TwoUsers = true; ...... credentials* cUserFirst; credentials* cUserSecond; cUserFirst = new credentials(); if( TwoUsers ) cUserSecond = new credentials(); ..... if( TwoUsers )cUserSecond-<SetCredentials( argv[3], argv[4] ); cUserFirst-<SetCredentials ( argv[1], argv[2] ); .... cUserFirst-<Administrate(); if( TwoUsers ) cUserSecond-<Administrate(); ... } |