[C#] steam client

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#46 Сообщение 31.05.2010, 23:36

по поводу SteamWeakVerifyNewValveCDKey
эта функция вызывает

Grid::CNewValveCDKeyGenerator::WeakVerify(std::string const&, unsigned int *, unsigned int *, unsigned int *)

которая в свою очередь вызывает

Grid::CNewValveCDKeyGenerator::InternalStartVerify(std::string const&,common::CSimpleBitString *,common::CSimpleBitString::iterator *,uint *,uint *,uint *)

которая уже либо выдает либо то, о чем выше писал Morfin, либо одну из следующих ошибок
Illegal character in CD-key
Not enough bits in CSimpleBitString
Bad CD-key check-digit
CD-key too long
Invalid CD-key
я честно говоря не совсем понял, но они вроде как переводят ключ в битовый массив и уже побитно проверяют его на валидность.

При правильном ключе функция возвращает 0,
при неправильном 36

Аватара пользователя
Gl0BuZ
Полковник
Полковник
Сообщения: 1600
Зарегистрирован: 28.01.2009
Откуда: Россия, Москва
Поблагодарили: 2 раза
Контактная информация:

#47 Сообщение 01.06.2010, 08:25

fire64
а это значит, что можно организовать запрос таким образом, чтобы ключики п*здить? %) Или я чё-то не вгоняю?

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#48 Сообщение 01.06.2010, 11:03

Gl0BuZ, нет конечно.
это значит, что ключи можно проверять на валидность.

Добавлено спустя 17 минут 12 секунд:

Код: Выделить всё

int CSteamFunc::ChekCDKey( const char*cszValveCDkey )
{
	unsigned int piGameCode = 0;
	unsigned int puTerritoryCode = 0;
	unsigned int hz = 0;

	ESteamError checkcdkey = SteamWeakVerifyNewValveCDKey( cszValveCDkey, piGameCode, puTerritoryCode, hz );


	if( checkcdkey == eSteamErrorNone )
	{
		printf( "\nCD Key Valid\n\n" );
		printf( "piGameCode = %d\n", piGameCode );
		printf( "puTerritoryCode = %d\n", puTerritoryCode );
		printf( "hz = %d\n\n", hz );
	}
	else if( checkcdkey == eSteamErrorInvalidUserIDTicket )
	{
		printf( "\nCD Key Not Valid\n\n" );
		printf( "piGameCode = %d\n", piGameCode );
		printf( "puTerritoryCode = %d\n", puTerritoryCode );
		printf( "hz = %d\n\n", hz );
	}
	else
	{
		printf( "\nCD Key Other\n\n" );
		printf( "checkcdkey = %d\n", checkcdkey );
		printf( "piGameCode = %d\n", piGameCode );
		printf( "puTerritoryCode = %d\n", puTerritoryCode );
		printf( "hz = %d\n\n", hz );
	}

	return piGameCode;
}

[user]
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 3501
Зарегистрирован: 18.07.2008
Благодарил (а): 2 раза
Поблагодарили: 17 раз
Контактная информация:

#49 Сообщение 08.06.2010, 18:14

запустить вот и всё
Сколько троянов наплодили наши девелоперы... :suicide:
Нет бы нормальный патчер для стима написать... А то всё одни аккаунт-воры.
© [user]

Ответить Вложения 3