Вернуться   CoderX :: Forums > Основные форумы > Курилка
Войти через OpenID

Курилка Флудим и шутим тут!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 09.05.2014, 15:17   #1
Местный
 
Аватар для St1mul
 
Регистрация: 03.12.2011
Сообщений: 133
Сказал Спасибо: 63
Имеет 19 спасибок в 16 сообщенях
St1mul пока неопределено
Стрелка Помощь в восстановлении алгоритма шифрации.

Появилось свободное время, начал реверсить одну защиту, дошел до алгоритма шифрации и вот что получилось:
шифрация заключается в операции AND между байтом пакета и байтом ключа.
Вопрос 1: Как мне обратно восстановить пакет, если я знаю ключ и зашифрованный пакет? Вопрос с изюминкой
Вопрос 2: Как в стандартной шифрации ИТ( с 16 байтным ключом ) происходит шифровация 17ого по счету байта пакета?
Вопрос 3: Что происходит с ключом после того как пакет был послан на сервер ( как изменился ключ после этого)?
Просьба всех, кто имеет хоть какие то соображения ответить.

Последний раз редактировалось St1mul, 09.05.2014 в 15:21.
St1mul вне форума   Ответить с цитированием
Старый 09.05.2014, 23:49   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
в операции AND между байтом пакета и байтом ключа.
необратимо.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от:
Старый 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 вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Курилка



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:40.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!