Сейчас на форуме: tyns777, Lohmaty (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Шифрование пакетов и онлайн игре
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 апреля 2018 11:55 · Поправил: ZSavich
· Личное сообщение · #1

Здравствуйте! Сильно загорелся старой мечтой взломать игру R2 Online и начал читать много "туториалов" о том по теме отлавливания пакетом через ollyDBG и их изменение. Exe файл компилируется на С++ и не зашифрован благодаря чему я смог посмотреть все функции через IDE.

Запустил игру, ollyDBG и начал отлавливать событие "send" и заметил, что перед отправкой шифруются все пакеты кроме сообщений в чате. Начал искать функцию которая шифрует данные пакеты но пока безуспешно.

Как найти данную функцию? Стоит ли подниматься по функциям вверх или есть другой путь?

P.S. Шифрование пакетов происходит с помощью Microsoft Base Cryptographic Provider v1.0.
Методы шифрования:




Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 25 апреля 2018 17:27 · Поправил: unknownproject
· Личное сообщение · #2

ZSavich пишет:
Начал искать функцию которая шифрует данные пакеты но пока безуспешно.

Какого конкретно пакета ? crc может использоваться для валидации пакета в том случае, если он был изменен.

На клиент надо натравить сниффер, а не отладчик, потому что первичная задача - это восстановить клиент-серверную логику и понять, по какому протоколу отправляются данные. То, что нашел KANAL - не факт, что есть в софте. При разработке софта и добавлении на форму сетевого компонента тянутся все криптографические функции, задействованые в нем (компоненте), которые используются для сжатия и шифрования траффика, вне зависимости от того, используются ли они непосредственно в данном софте или нет. Это не более, чем особенность сборки, а по факту - просто индексация. Если же вам хочется, чтобы каждое событие в игре сопровождалось прерыванием - можете понаставить брейкпоинты в отладчике повсюду, но это такое себе удовольствие.

-----
TEST YOUR MIGHT




Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 апреля 2018 20:29
· Личное сообщение · #3

unknownproject пишет:
Какого конкретно пакета ? crc может использоваться для валидации пакета в том случае, если он был изменен.

Можете, пожалуйста, дать какие-то контакты чтобы я смог описать свою проблему? Постараюсь много времени у вас не занять.




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 05 мая 2018 11:28 · Поправил: f13nd
· Личное сообщение · #4

Я бы предложил несколько направлений на выбор.
1. от бряка на recv проследить что происходит с содержимым буфера (бряками на память)
2. если предположить, что соответствующая библиотека для шифрования прилинкована к ехе, можно втупую собрать с листинга все xor'ы, отсеяв из них в текстовом редакторе конструкции типа xor eax,eax. Вообще логические функции, если они не относятся к утилитарным каким-то вещам типа скалирования или проверки флагов (логический сдвиг вправо-влево на 1-2 бита это скалирование на 2 или 4, а например вправо на 7 бит, или тем более циклический сдвиг - почти всегда криптография), заслуживают внимания.
3. ну и наконец если в папке с игрой есть библиотеки openssl (ssleay32.dll, libeay32.dll), используются функции микрософт криптоапи - оно почти наверняка там.

99.5%, что вариант 3 твой случай.

ЗЫ: и вообще никогда не брезгуй просмотром referenced strings, раз олей пользуешься. Там тебя могут ждать служебные-отладочные строчки из openssl (насколько я могу судить, в большинстве игр трафик шифруется этой библиотекой) или просто подсказки.

-----
2 оттенка серого



 eXeL@B —› Вопросы новичков —› Шифрование пакетов и онлайн игре
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати