Тема: Обсуждение / Вопросы Лаунчер
Показать сообщение отдельно
Старый 01.11.2015, 15:25   #4
Dino
Проф. продавец
Аватар для Dino
OFFLINE
Регистрация: 23.07.2012
Сообщений: 2,402
Благодарностей:
886 всего
Мнения: + 3895
Репутация: 2656

Цитата:
Сообщение от primerb Посмотреть сообщение
Вот щас так и собираюсь сделать... но никогда не занимался отладкой чужих програмулинок...)

Добавлено через 47 минут
Все сделал, берутся первые 4тыре ключа. Моя проблема была в том что я для переменной 4байта выделял ровно 4 байта (char a[3]) и забыл про "завершающий 0. Выделил 4 байта + 1 для нуля (char a[4]) - и все запахало)!)!)!)!
а зачем ты массив char используешь для хранения ключей? char[] только для пакета, ключе же надо разбить на DWORDы и далее уже производить с ними необходимые операции. Вот на примере пакета из той темы, ты вроде на плюсах пишешь

Код:
char recv[] = "\x09\x20\xC0\xB8\xC4\x00\x15\xCD\xF7\xAE\x7E\xFD\x2B\xEC\xB0\x32\x8B\x0C\x00\x96\x3B\x5D\x07\x30\xB7\x87\x5F\x43\xBB\x35\x45\x15\x25\xB3\xCD\x11\x64\x4B\xFA\x40";
DWORD Sessionkey[4] = { 0 };
 Sessionkey[0] = *(DWORD*)(recv+20);  //5
 Sessionkey[1] = *(DWORD*)(recv+12);  //3
 Sessionkey[2] = *(DWORD*)(recv+28);  //7
 Sessionkey[3] = *(DWORD*)(recv+4);       //1

 DWORD key[4] = { 0xCFCF22E6, 0x5BBCDE6F, 0xACDF5EDA, 0xBCCD1B37 };
 for (int i = 0; i < 4; i++)
  Sessionkey[i] ^= key[i];
конечно в идеале не плохо бы все это в отдельную структуру вогнать, но для примера сойдет и так

Добавлено через 1 час 16 минут
Цитата:
Сообщение от primerb Посмотреть сообщение
Моя проблема была в том что я для переменной 4байта выделял ровно 4 байта (char a[3]) и забыл про "завершающий 0. Выделил 4 байта + 1 для нуля (char a[4]) - и все запахало)!)!)!)!
Ого только щас заметил. Это в каких таких книжках пишут что char a[3]; это 4 байта?

Последний раз редактировалось Dino; 01.11.2015 в 16:46. Причина: Добавлено сообщение
 
Ответить с цитированием
Сказали спасибо:
FlyGirl (02.11.2015)