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

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 27.08.2016, 21:26   #1
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 37
Сказал Спасибо: 9
Имеет 0 спасибок в 0 сообщенях
Rzone пока неопределено
Вопрос CatsGuard шифрование

Хотел бы встроить в своего бота шифрацию для данной защиты.
Сервер на котором тестирую Interlude. В систем присутствует nProtect.des собран 2 января 2013 г. Знаю что CatsGuard использует RC4 шифрование, от сервера приходит GameGuardQuery с ключами размером 966+2
Код:
F9 03 00 00 41 53 87 7A 00 73 00 74 00 00 00 7A E1 03 00 72 41 6D 87 60 00 6E 00 65 00 00 00 EE 8D 07 02 D4 69 14 97 0F 00 00 00 01 00 00 00 04 EA 00 00 37 41 17 87 0E 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 06 BC 40 00 EA 00 00 00 11 9C C7 8F 85 58 00 FC 44 60 04 00 EA 00 00 37 41 17 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 00 00 00 CD E1 03 10 79 59 14 97 7D 1A 03 10 23 18 03 10 5E AC 02 10 CF 02 15 97 2A 16 01 10 FA 15 01 10 00 EA 00 00 3D 57 16 97 29 16 01 10 28 16 01 10 3F FC 01 10 00 41 17 87 F5 15 01 10 00 00 00 00 00 EA 00 00 F9 5E 17 87 5F 03 00 00 50 03 00 00 8F E9 00 00 7F 42 17 87 70 03 00 00 70 09 00 00 C5 F5 00 00 00 41 17 87 59 16 00 00 66 01 00 00 4C E3 00 00 66 57 17 87 0F 00 00 00 C5 1F 00 00 00 EA 00 00 00 41 17 87 0C 00 00 00 01 00 00 00 01 EA 00 00 00 41 17 87 0F 06 BC 40 00 00 00 00 00 BA 8B 40 00 41 17 87 38 00 00 00 00 00 00 00 00 EA 00 00 00 0D 17 E8 0F 6C 00 69 00 00 00 7A 0B E9 00 72 00 3B 17 E8 0F 6E 00 65 00 00 00 EE 67 ED 02 00 00 41 17 87 0F 00 00 01 00 00 00 04 00 EA 00 35 00 41 17 86 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 C0 7A 40 00 00 EA 00 00 40 20 57 EF 26 00 00 A7 96 03 00 00 00 EA 00 0E 00 41 17 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 00 00 4E B7 EB 10 4A B7 40 07 CB B8 01 10 49 B7 01 10 3C B7 EB 10 3D B7 40 07 C6 B8 01 10 48 B7 01 10 47 B7 EB 10 44 B7 40 07 B9 B8 01 10 3F B7 01 10 46 B7 EB 10 00 00 41 17 87 0F 00 00 00 00 00 00 00 00 EA 00 F9 1F 41 17 F4 0F 00 00 73 00 00 00 8C 03 EA 00 6D 03 41 17 EA 0C 00 00 7C 04 00 00 57 00 EA 00 71 02 41 17 B4 0F 00 00 1A 00 00 00 22 00 EA 00 27 00 41 17 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 81 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 CF 7A 40 00 00 00 00 00 40 8B 40 00 00 41 17 B2 0F 00 00 00 00 00 00 00 00 EA 00 00 4B 41 76 87 63 00 69 00 61 00 6E 00 00 EA 7A 0B 03 41 65 87 75 00 6F 00 6E 00 65 00 00 EA EE 67 07 43 17 87 0F 00 00 00 00 00 00 00 00 EA 01 00 00 41 05 87 0F 00 01 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 00 00 80 66 AA 00 00 00 41 17 47 5F 40 2C 01 00 00 FE 10 00 EA 00 00 00 41 12 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 00 00 00 00 00 00 EA 71 1C 02 51 17 87 0F 00 64 1C 02 10 55 1C 02 FA 00 00 00 41 40 9B 0D 10 37 1C 02 10 52 1C 02 FA 43 1C 02 51 21 9B 0D 10 3F 1C 02 10 38 1C 02 FA 40 1C 02 51 17 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 EE 98 0F 00 00 00 00 00 73 00 00 EA 8C 03 00 41 17 87 0F 00 6D 03 00 00 7C 04 00 EA DB 00 00 41 66 85 0F 00 33 00 00 00 1A 00 00 EA 22 00 00 41 30 87 0F 00 00 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 01 00 00 00 00 00 00 EA 00 00 00 41 17 87 0F 00 00 80 66 40 00 00 00 EA 00 C0 50 01 17 87 0F 00 12 00 00 00 01 00 00 EA 00 00 00 41 17
Уже долго ломаю голову, ключ у RC4 должен быть не более 32 байт, а тут 966... И, вероятнее всего, RC4 идет поверх стандартного xor шифрования.

Если кто знает как работает защита напишите пожалуйста, готов даже выдать небольшое вознаграждение за решение на яндекс, вебмани, или карту.
Rzone вне форума   Ответить с цитированием
Старый 29.08.2016, 23:00   #2
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Откуда знания про RC4?
С чего ты решил, что это GameGuardQuery?
С чего ты решил, что в этом пакете ключи?
Если ты сумел расшифровать пакет (раз ты получил чистый трафик и тип пакета определил), то значит проблем с этой частью не должно быть.

Если в общем говорить про защиты, то скорей всего внутри des файла уже жестко вшит ключ шифрования, на сервере соответственно установлен такой же ключ. Т.е. клиент читает des, распаковывает/расшифровывает его и полученные данные использует для общения с сервером. Т.о. образом получается, что по сети ничего не передается, и клиенты от разных серверов не будут между собой совместимы.

Как узнать алгоритм и ключ? - Отладчик в руки и вперед.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 30.08.2016, 01:43   #3
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 37
Сказал Спасибо: 9
Имеет 0 спасибок в 0 сообщенях
Rzone пока неопределено
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Откуда знания про RC4?
В исходниках серверной части CatsGuard есть инклюд с алгоритмом RC4.
В коде CatsGuard.java - packet = _crypt.rc4(packet);

Цитата:
Сообщение от ScythLab Посмотреть сообщение
С чего ты решил, что это GameGuardQuery?
До этого пакета(включая и его) все шифруется стандартным xor. Опкод у пакета F9 - GameGuardQuery.

Пакет меняется в каждой сессии, после этого пакета меняется тип шифрования, соответственно я предположил, что в этом пакете приходят ключи.

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Как узнать алгоритм и ключ? - Отладчик в руки и вперед.
Увы ассемблером не владею...
Rzone вне форума   Ответить с цитированием
Старый 30.08.2016, 12:35   #4
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Rzone Посмотреть сообщение
Опкод у пакета F9 - GameGuardQuery.
Если это полный дамп пакета, то первые два байта (F9 03) - длина (т.е. 1017 байт вместе с заголовком, хотя ты выложил пакет меньшего размера), и значит это не GameGuardQuery, а KeyInit. Но в общем это не принципиально.

Цитата:
Пакет меняется в каждой сессии, после этого пакета меняется тип шифрования, соответственно я предположил, что в этом пакете приходят ключи.
И все равно я склоняюсь к мысли, что основные данные содержатся в des-файле, возможно присутствует какая-нить мутация ключа по данным из пакетов LoginOk, PlayOk и KeyInit. Собственно, если у тебя есть серверная часть с кодом, то из него ты можешь попытаться найти места, где передаются ключи, но опять-таки думаю ты столкнешься с des-файлом и с необходимостью его расшифровки.

Цитата:
Увы ассемблером не владею...
Тогда задача практически неразрешимая, только если чисто случайно наткнешься на верный алгоритм.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 30.08.2016, 15:45   #5
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 37
Сказал Спасибо: 9
Имеет 0 спасибок в 0 сообщенях
Rzone пока неопределено
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Если это полный дамп пакета
Не полный, без первых байт размера. Дамп из пакетхака.

ScythLab можно спросить, а вы своего бота пишете ингейм? На инжекте длл?
Rzone вне форума   Ответить с цитированием
Старый 31.08.2016, 13:40   #6
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Rzone Посмотреть сообщение
ScythLab можно спросить, а вы своего бота пишете ингейм? На инжекте длл?
Чуть предыстории: изначально он был OOG (повезло, что случайно выбранный сервер оказался вообще без защиты), потом примерно через полгода на этот сервак поставили защиту, начался ее анализ и параллельно проверялись другие сервера, выяснилось (внезапно и неожиданно ), что почти все сервера зашифрованы и что у каждой защиты свои фишки, и бороться с каждой из них крайне геморройно, поэтому бот переписали на IG-режим.
Для ИГ-ботов по сути два варианта: 1) инъекция dll (наш метод) 2) работа с памятью клиента извне.
(2) вариант более безопасен, но имхо больше грузит систему.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 31.08.2016, 14:44   #7
Пользователь
 
Регистрация: 20.02.2012
Сообщений: 37
Сказал Спасибо: 9
Имеет 0 спасибок в 0 сообщенях
Rzone пока неопределено
По умолчанию

ScythLab, написал вам в лс.
Rzone вне форума   Ответить с цитированием
Старый 02.09.2016, 17:38   #8
Местный
 
Регистрация: 04.11.2009
Адрес: Где-то в жопе европы
Сообщений: 316
Сказал Спасибо: 32
Имеет 42 спасибок в 39 сообщенях
wimax пока неопределено
По умолчанию

Rzone, Щас как раз занимаюсь данным вопросом могу дешифровать трафик а вот кодирывать пока не как)
wimax вне форума   Ответить с цитированием
Старый 02.09.2016, 21:16   #9
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

wimax, RC4 же симметричный алгоритм, если смог расшифровать, значит и закодировать сможешь, или там еще какая-то хитрая контрольная сумма?
Вам с Rzone можно объединиться, и работать вместе веселее, и знаний полезных поднакопите.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

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

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