Я могу ошибаться но общий смысл защиты таков. К клиенту идёт dll'ка (100кб), которая считает контрольные суммы файлов и шифрует всё что клиент отсылает на основе этих ключей. По некому алгоритму. Аналогично происходит на сервере, дешифруя данные. Минусы защиты только в том что писалась на делфи и довольно толстая и то что не зашифрована в надежде что все кто будут ломать сами обломаются и до конца копаться не будут. Помогите разобраться как можно сделать так чтобы ключи оставались всегда нужными. Кому не трудно помоч, подробности по ICQ 9042515 или лично, за пивом))) 884578151__dll.rar
mirage Ночью надо спать Ты топик перепутал - здесь помощь новички не просят. Особенно так сумбурно : чего ты хочешь-то ?! Что означает ???
TCrypt32, ECryptError, "Ошибка декодирования. Несовпадение имитовставки.", никто не слыхал что это, гост? А откуда они берутся?
Объясню про ключи: Как я говорил, это лишь мои догадки, что при загрузке клиента грузится дллка, которая сразу проверяет на контрольные суммы нужные файлы, на основе этих сумм создаёт ключ, перехватывает всё что передаёт клиент серверу и шифрует этим ключём. Так вот мне надо чтобы при изменении любого из файлов дллка об этом не узнала и шифровала прежними ключами. P.S. Почему я перепутал топ, здесь вроде изучение и дисасемблирование)
Но не разгадки догадок. По названиям функций тебе уже подсказали, что это GOST89 - отечественная система шифрования. Если сервер тупой, то надо просто в отладчике полазить по клиенту и забить проверки сумм и генерацию разных ключей. Но только GOST89 так не делает, поэтому твои догадки неверны.
mirage В двух словах это все равно будет ничем не лучше, чем ты написал. Да и все равно ты не об"яснил, что ты хочешь ?! Ты видимо и сам это еще не знаешь. Это не я взял, а просто раз"ясняю фразу : Но для тебя это просто набор непонятных слов ?! А это все в "твоей" dll находится.
Крипт тут разделяется на две части 1)Самопальная... 2)TCrypt32 (GOST89?) Теперь сам процесс... клиент поулчает от сервера информацию длинной 40 байт далее шифрует её и посылает на сервер но уже 44 байта .. в конец цепляя ИП адрес себя... сервер расшифровывает инфу и если всё ОК то пускает дальше и идёт номральный трафико обмен... а если нет то Ассес Денайд... При подключения к серверу мы поулчаем 40 байт которые должны зашифровать ... вначале идёт самапальное шифрование причём шифруются только некоторые части ... пакета... ... то бишь конкретно... CODE:00413B42 call GetFirstXorKeyFromDllSize CODE:00413B47 mov ebx, eax CODE:00413B49 mov eax, ds:GeneralDataPointer CODE:00413B4E mov eax, [eax+20h] в EBX у нас ключ который получился при вызове функции он всегда один и тот же если ДЛЛ у нас оригинальная +)... в EAX собсвенно говря указатель на первый байт пакета... далее ксорим... CODE:00413B56 add eax, 20h CODE:00413B59 xor [eax], ebx ; First XOR operation после чего криптуем ещё 6 участков пакета 6 разными ключами... вот этот цикл.. CODE:00413B6A CryptLoop: CODE:00413B6A mov eax, [ebp+xorTblAddr] CODE:00413B6D call LStrToPChar(void) CODE:00413B72 mov esi, ebx CODE:00413B74 shl esi, 2 CODE:00413B77 add eax, esi CODE:00413B79 push dword ptr [eax] CODE:00413B7B mov eax, ds:GeneralDataPointer CODE:00413B80 mov eax, [eax+20h] CODE:00413B83 call LStrToPChar(void) CODE:00413B88 add eax, 4 CODE:00413B8B add eax, esi CODE:00413B8D pop edx CODE:00413B8E xor [eax], edx CODE:00413B90 inc ebx CODE:00413B91 cmp ebx, 6 CODE:00413B94 jnz short CryptLoop на Си это можно представить как... unsigned int *ptx = (unsigned int*)buf; //наш пакет static unsigned int xorTbl[] = { 0x38D26ACB, 0x9D5D1F74, 0xBD2BEAB1, 0xEBD16290, 0x24A72C01, 0x8623FCB1 }; for(int i = 0;i<6;i++) ptx[i+1]^=xorTbl; Ну вот ... эта первая часть крипта пакета +) А вообще Ультима это зло =)
А по поводу загрузки... то при инициализации библиотеки она патчит импорт и хукает CONNECT SEND и RECV да это не оригинальная защита для клиента а хак.. поверх клиента чтоб защитить его от юзеров... защита клиент игры ltimaOnline =)//чтоб быть точным...
Информация к размышлению.... www.uosoft.ru - это по поводу того как можно обойти защиту и подменять пакеты програмка зовётся TEOT aka The Eyes Of Truth... ну и ещё какие то ... mudator.by.ru - тут кое что тоже по УО www.foruo.com - зеркало 2mirage можно и в аське пообщаться прсото довно искал человека который любит ковырять УО.... именно в плане защит... 2ssx Собсвенно гворя от Инжекшан и подобных программ она и сделана...
Да второй крипт это ГОСТ89 (или подобный)+) нормально работает =) правдо крипт вырипал из асма и оставил в асме часть, а часть переписал в Си... вообще потестил ну да результат один и тот же.. да чуть не забыл криптуется только блок в 40байт а последнии 4 байта это Ип и они не криптуются... после такой проверки.. Сервер - 40 байт Клиент - 44 байта используется стандартный трафико обмен на стадии подключения это ЛогинКрипт а на в игре это в данном случаи БлоуФиш