Цитата:
Сообщение от Rzone
Проблема в том, что сервер присылает тебе ключ ксор шифрования, каждый раз ключ генерируется рандомно, а ты отсылаешь пакеты зашифрованные старым, нелигитным ключом. Мой совет - не спеши, делай по нормальному. Пакеты сам собирай из той информации которую тебе сервер пересылает. Проходи поэтапно, по пакетику. Снифери сравнивай правильно ли собрал пакет и дальше.
|
И причем тут ключ? Он пришел в предыдущем пакете. Этим ключом шифрую этот? Что ты имеешь ввиду под старым ключом?? Где я этот старый получил?
То что я написал в предыдущем посте говорит о том что алгоритмы работают верно (ну судя по полученным результатом).
Добавлено через 2 минуты
Цитата:
Сообщение от Demion
Если сервер ничего не отвечает, скорее всего на правильно шифруешь пакет. Вот часть исходников моего старого бота, может поможет.
|
Спасибо ща покурю код.
Код:
VOID GSAuthLogin(BYTE *buf, CHAR* Login, DWORD *SessionKey1, DWORD *SessionKey2, DWORD *SessionKey3, DWORD *SessionKey4, SOCKET s, BYTE *XorKeyEnc)
{
WCHAR ULogin[15];
swprintf(ULogin, 15, L"%hs", Login);
memset(buf, 0, 65535);
buf[0] = 0x2B;
memcpy(buf+1, ULogin, wcslen(ULogin)*2+2);
memcpy(buf+wcslen(ULogin)*2+3, SessionKey4, sizeof(DWORD));
memcpy(buf+wcslen(ULogin)*2+7, SessionKey3, sizeof(DWORD));
memcpy(buf+wcslen(ULogin)*2+11, SessionKey1, sizeof(DWORD));
memcpy(buf+wcslen(ULogin)*2+15, SessionKey2, sizeof(DWORD));
buf[wcslen(ULogin)*2+19]=0x08;
buf[wcslen(ULogin)*2+23]=0x7A;
buf[wcslen(ULogin)*2+24]=0x03;
buf[wcslen(ULogin)*2+31]=0x01;
SendPacket(buf, wcslen(ULogin)*2+35, s, 2, (DWORD)XorKeyEnc, 90);
}
а эти данные откуда?