Показать сообщение отдельно
Старый 10.05.2014, 02:58   #3
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
По умолчанию

alexteam, Алгоритм немного сложнее:
Пусть байт, который шифруется будет - (1B)
байт ключа - (F5)
Сам алгоритм:
1.
1.1. NOT(F5) = (0A)
1.2. (1B)AND(0A) = (0A) // (RESULT1)
2.
2.1. NOT(1B) = (E4)
2.2. NOT(RESULT1) = (F5)
2.2 (E4)AND(F5) = E4 // RESULT2
3.
3.1 NOT(RESULT1) = F5
3.2 NOT(RESULT2) = 1B
3.3 (F5)AND(1B) = 11 // байт пакета на выходе после шифрации
Тоже самое можно получить обычной операцией (1B)AND(F5) = 11
.
Как быть дальше???

Добавлено через 1 час 17 минут
Я проверил по законам логического выражения: все вроде подходит, операция AND между байтом пакета и байтом ключа.
Я не могу понять как тогда сервер существует, если такой алгоритм в нем. Сам догадывается какой пакет ему ближе?

Добавлено через 52 минуты
бред какой-то.
стал реверсить клиент дальше, чтобы найти зацепку и нашел:
Нашел такой случай, когда в шифрации были следующие байты:
байт пакета: 1B и байт ключа 7E
по идее на выходе должно получиться (1B)AND(7E) = 1A
Но на выходе выходило постоянно 9A (сервер не меняет первые 5 байт в течении одной сессии)
Думал,думал, поэксперементировал и вышло следующее:
9A XOR 7E = E4 // NOT ( исходный байт пакета )
А также пример, который я написал выше подходит под это тоже:
11 XOR F5 = E4
.

Добавлено через 3 минуты
Спасибо алекстим 1 строчка, 1 слово, 1 точка, зато как помогло серьезно

Последний раз редактировалось St1mul, 10.05.2014 в 02:58. Причина: Добавлено сообщение
St1mul вне форума   Ответить с цитированием