[Поиск] Программа логина на Стим-сервер
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Была у меня как-то на винте такая прога, но я ее удалил случайно.
Суть программы в следующем - она коннектилась к серверу аутенфикации Стима и проводила там аутенфикацию пользователя.
Сама она написана ни Питоне (python) и входила в состав чего-то большего (уже не помню чего, но там точно была скачка CDR'а и прочие функции).
PS: Сам найти не могу, тк у меня закончился траффик на мобилке, с которой щас и сижу :(
Суть программы в следующем - она коннектилась к серверу аутенфикации Стима и проводила там аутенфикацию пользователя.
Сама она написана ни Питоне (python) и входила в состав чего-то большего (уже не помню чего, но там точно была скачка CDR'а и прочие функции).
PS: Сам найти не могу, тк у меня закончился траффик на мобилке, с которой щас и сижу :(
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
-
- Маппер
- Сообщения: 1748
- Зарегистрирован: 18.02.2008
- Откуда: <удалено>
MDi93
Обычная аутентификация в акк. Можно использовать как и чекер :)
Обычная аутентификация в акк. Можно использовать как и чекер :)
Завязываю с играми
Мну в Xbox LIVE




- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
АПИМонитор ловит только первые 100 байт, а мне надо словить весь ответ (около 1-3кб), так что надо хитрить.
Сам пробовал написать прогу (идя обратно от сервера) - проваливается (вроде как все правильно работает, но говорит, что пасс неправильный).
Сам пробовал написать прогу (идя обратно от сервера) - проваливается (вроде как все правильно работает, но говорит, что пасс неправильный).
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Попробую все....
Добавлено спустя 28 минут 29 секунд:
CFToolBox выдал и на мои старые и только что созданный акки "Authentication error" :(
Добавлено спустя 28 минут 29 секунд:
CFToolBox выдал и на мои старые и только что созданный акки "Authentication error" :(
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Giza
При чем тут MiSteam? Он с сетевой частью Steam никоим образом не связан.
При чем тут MiSteam? Он с сетевой частью Steam никоим образом не связан.
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Уже ничего не надо - SteamCooker поделился частью исходного кода CFToolBox'а :)
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
- andreil
- Разработчик
- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
- Контактная информация:
Дан только кусок кода :)
Но и его хватает. Единственное но - моя прога все равно не пашет :( Что-то там не так, буду пробывать написать на С++.
Но и его хватает. Единственное но - моя прога все равно не пашет :( Что-то там не так, буду пробывать написать на С++.
Код: Выделить всё
SOCKET socket=connectSocket(authServer);
if (socket==0) {closesocket(socket); return -10;}
sendSocket(socket,"00 00 00 00 04");
if (progress) progress->SetPos(1);
DWORD data[2];
DWORD localIp=reverseBytes(getCurrentIp());
DWORD loginhash=reverseBytes(jenkinsHash((unsigned char*)login,strlen(login),0));
data[0]=localIp;
data[1]=loginhash;
sendSafe(socket,(char*)data,8,0);
localIp=reverseBytes(localIp);
int ack=readSocket(socket,1);
if (progress) progress->SetPos(2);
if (ack) {closesocket(socket); return -10;}
DWORD externalIp=readSocket(socket,4);
int loginLen=strlen(login);
DWORD packetLen=reverseBytes(5+2*loginLen);
WORD loginLenR=(WORD)reverseBytes(loginLen,2);
sendSafe(socket,(char*)&packetLen,4,0);
sendSocket(socket,"02");
sendSafe(socket,(char*)&loginLenR,2,0);
sendSafe(socket,login,loginLen,0);
sendSafe(socket,(char*)&loginLenR,2,0);
sendSafe(socket,login,loginLen,0);
if (progress) progress->SetPos(3);
char salt[8];
recvSafe(socket,salt,8,0);
if (progress) progress->SetPos(4);
char aesKey1[16];
getAesKey1(password, (char*)&salt,aesKey1);
char aesKey2[16];
getAesKey2(localIp, externalIp, aesKey2);
ULONGLONG timestamp=getNanosecondsSinceTime0();
char plain[16];
memcpy(plain,(char*)×tamp,8);
XOR(plain,aesKey2,8);
memcpy(plain+8,(char*)&localIp,4);
memset(plain+12,0x04,4);
char iv[40];
CSHA1 sha1;
sha1.Reset();
sha1.Update((UINT_8 *)×tamp,8);
sha1.Final();
sha1.GetHash((UINT_8 *)iv);
char cypher[16];
CRijndael aes;
aes.MakeKey(aesKey1, iv, 16, 16);
aes.ResetChain();
aes.Encrypt(plain,cypher,16,CRijndael::CBC);
sendSocket(socket,"00 00 00 24");
sendSafe(socket,iv,16,0);
sendSocket(socket,"00 0C 00 10"); // decr / encr sizez
sendSafe(socket,cypher,16,0);
if (progress) progress->SetPos(5);
char ok=1;
if (recvSafe(socket,&ok,1,0)!=1)
{
closesocket(socket);
return -5; // server closed connection
}
ULONGLONG serverTimestamp=0;
ULONGLONG clockSkewTolerance=0;
if (recvSafe(socket,(char*)&serverTimestamp,8,0)!=8)
{
closesocket(socket);
return -5; // server closed connection
}
if (recvSafe(socket,(char*)&clockSkewTolerance,8,0)!=8)
{
closesocket(socket);
return -5; // server closed connection
}
if (progress) progress->SetPos(6);
if (ok) {
closesocket(socket);
if (ok!=3 && serverTimestamp && clockSkewTolerance)
{ // not officialy a timestamp problem
// check timestamps
ULONGLONG delta=0;
if (serverTimestamp>timestamp)
delta=serverTimestamp-timestamp;
else
delta=timestamp-serverTimestamp;
if (delta >= clockSkewTolerance)
{
ok=3;
}
// 1.0.10
if (serverTimestamp) adjustTime(serverTimestamp);
}
return -ok;
}
// 1.0.10
if (serverTimestamp) adjustTime(serverTimestamp);
/*
case 4:
//Response: The account is disabled.
case 3:
//Response: Your clock differs too much from the servers time of UTC.
case 2:
//Response: The account does not exist, or the password that you entered was not correct.
case 1:
//Response: The account does not exist.
case 0:
//Response: Login OK
*/
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
Посмотри, тут есть логин steam2/steam3.
Код на C++, все хэдеры в папке Open Steamworks.
http://deadcode.info/svn/filedetails.ph ... 2Fmain.cpp
Проверял, работает.
Код на C++, все хэдеры в папке Open Steamworks.
http://deadcode.info/svn/filedetails.ph ... 2Fmain.cpp
Проверял, работает.