Показать сообщение отдельно
Старый 11.03.2013, 21:20   #1
Пользователь
 
Регистрация: 05.03.2010
Сообщений: 46
Сказал Спасибо: 0
Имеет 14 спасибок в 9 сообщенях
Deadly пока неопределено
По умолчанию Стандартный Алгоритм шифрации L2 C#

Если вы играете на сервере, на нем много народу, и нету бота в шаре(ток у избранных) пишите пм адрес сервера(и если знаете текущую ситуацию с этим тоже пишите, и если знаете обход шифрации запилю бесплатно).
А да сам код
Код:
/*
 1 - передаче подлежит полный пакет без обрезанных первых 2 байт;
 2 - по идее должно быть 4 ключа, 1-н которым шифрует от сервера другой который шифрует до клиента и еще 2 от клиента до сервера логичне всего  определить эти 4 ключа гдето в начале программы, алгоритм должен быть следующим 1 ключ на дешифровку от сервера 1 ключ на шифровку к клиенту,  и в конце оба ключа должны по идеии увеличиваться на то число байт на которое были увеличины или уменьшены, еще нужно передать размер сообщения не забываем про первые 2 байта;
 3 - мы можем впринципе ничего не возращать тк все изменяется во время выполнения;
 4 - это для гс не забываем что шифтрация начинается с 3 пакета
 */


using System;
namespace Crypt
{
    public class Crypt
    {
    

         void crypt(ref byte[] data,int length,ref byte[] key) //1 
         {
                byte temp1 = 0;
                for (int i = 2; i < length; i++)
                {
                    byte temp2 = data[i];
                    data[i] = Convert.ToByte((temp2 ^ (key[(i - 2) % 16]) ^ temp1));
                    temp1 = temp2;
                }
                //расшифрован                  
     //Здесь можно произвести какието махинации, если меняется длинна пакета то необходимо изменить размер
                //шифровка
                temp1 = 0;
                for (int i = 2; i < length; i++)
                {
                    byte temp2 = data[i];
                    data[i] = Convert.ToByte((temp2 ^ (key[(i - 2) % 16]) ^ temp1));
                    temp1 = data[i];
                }
             BitConverter.GetBytes(BitConverter.ToInt64(key, 8) + length - 2).CopyTo(key, 8); // забавно на сколько c# облегчил жизнь)))   
            }
    }
}
думаю многим будет полезно.

Последний раз редактировалось Deadly, 11.03.2013 в 21:39.
Deadly вне форума   Ответить с цитированием
За это сообщение Deadly нажился 3 спасибками от: