Перейти к публикации

Поделитесь первыми 16 байтами Keyvault и снятым трафиком с бокса


alxxbx
 Поделиться

Рекомендованные сообщения

Дамп памяти с бокса не помешал бы. Уж в нем точно будет в расшифрованном виде то, что надо :)
Ссылка на комментарий
Поделиться на других сайтах

скачал АСМ под ДОС. Попробую софтину своять для RC4 брутфорса 40bit, 48bit и 56bit

 

борьба продолжается :)

Если это поможет, я где-то видел, что люди для брута используют видеокарты с поддержкой CUDA, скорость подбора выше чем cpu в 1000 раз.

Ссылка на комментарий
Поделиться на других сайтах

Если это поможет, я где-то видел, что люди для брута используют видеокарты с поддержкой CUDA, скорость подбора выше чем cpu в 1000 раз.

 

а у тебя есть такие видяхи?))

Ссылка на комментарий
Поделиться на других сайтах

у меня есть MSI9800GT на сколько знаю поддерживает CUDA Изменено пользователем Alex_16
Ссылка на комментарий
Поделиться на других сайтах

пришлось прервать, т.к. моя программа на C# под виндой7 слишком тормозно работает, месяц наверно...

надо на ассемблере писать и запускать под досом с запретом прерываний :)

исходники не выложите?

Я писал диплом на CUDA от nVidia... если алгоритм тупой и легко переписывается на стандартный С, то можно его выполнять на видюшке практически без лишнего гемора...

впрочем можете сделать прогу и выложить... люди будут считать

у меня один сервак под убунтой Core 2 Duo круглые сутки работает и еще на винде 7 комп 4 ядра, тоже практически все время работает с видюшкой 8800GT на борту

можно вашу считалку запустить чтобы считала

 

у меня есть MSI9800GT на сколько знаю поддерживает CUDA

Начиная с 8-ой серии все поддерживают... думаю сейчас уже практически у всех у кого нвидиа все с CUDA

 

Есть альтернатива... OpenCL, но он еще не очень хорошо оптимизирован под nVidia, но зато работает везде... и на нвидиа и на ати, а атишные либы, кстати, вообще умеют OpenCL считать на процах в которых SSE3 поддерживается

 

Для разных задач разный прирост... я говорю про тупое выполнение кода просто на разных ядрах видюхи без особых извращений в плане оптимизации.

Ну если только найти уже оптимизированную и шуструю либу для дешифрования... а так чтобы не гемороиться можно все в лоб написать.

каждое ядро видюхи, возможно, будет считать медленнее чем ядро проца, но за счет количества ядер, которое зависит от конкретной видюхи, должен быть достаточно большой общий прирост!

С оптимизированными либами это вообще улет))) моя задача на 4-х ядернике 44 секунды считалась, на видюшке "очень не первой" свежести 4 секунды... на новых всяких там 275, 285 и т.д. вообще бы летало бы наверно))

Изменено пользователем AlexCorvis
Ссылка на комментарий
Поделиться на других сайтах

Исходник есть на второй странице темы.

 

Скачал SDK, буду ковырять... не знаю получится ли снять дамп, по идее в адресное пространство системы доступ никто не даст... но посмотрим.

Ссылка на комментарий
Поделиться на других сайтах

подбор 16 байтного хеша брутфорсом от 00 до FF бесполезен - 340282366920938463463374607431770000000 вариантов, даже не знаю как эту цифру обозвать

 

28356863910078205288614550619314 секунд

472614398501303421476909176988,57 минут

7876906641688390357948486283,1428 часов

328204443403682931581186928,46428 дней

899190255900501182414211 лет

 

5 байт (40 bit) - 1099511627776 вариантов

6 байт (48 bit) - 281474976710656 вариантов

7 байт (56 bit) - 72057594037927936 вариантов

 

читал в инете, что на CUDA возможно добиться подбора 12000000 паролей в секунду для RC4 на GF260

5 байт - 91626 секунд / 1527 минут / 25,45 часов / чуть более суток

6 байт - 23456248 секунд / 390937 минут / 6515,5 часов / 271,4792 дня / 0,744 года

 

поэтому надо верно написать алгоритм дешифрации и искать хеш в кейваульт!

 

есть мысль, что надо трафик снять с консоли, выставив на ней страну США или Канада, тогда все ключи будут 128 битными

Изменено пользователем alxxbx
Ссылка на комментарий
Поделиться на других сайтах

Откопал какой-то брутер для CPU Key, на CUDA'е. Автор обещал сорсы тоже отдать в массы.

Вопрос возник такого характера: Нафиг нам нужен ключ CPU?

А причина поста: Мб годные исходники для вас будут.

Изменено пользователем kAs1m
Ссылка на комментарий
Поделиться на других сайтах

Откопал какой-то брутер для CPU Key, на CUDA'е. Автор обещал сорсы тоже отдать в массы.

Вопрос возник такого характера: Нафиг нам нужен ключ CPU?

А причина поста: Мб годные исходники для вас будут.

И сколько он с CUDA месяцев будет считать?

Ссылка на комментарий
Поделиться на других сайтах

И сколько он с CUDA месяцев будет считать?

В описании к первой версии говорилось о 100 годах. Ну, раз 2 пашет примерно в 20 раз быстрее... =)

Ссылка на комментарий
Поделиться на других сайтах

Я там почитал промтом), один пишет что с 8800 Ultra ~ 900 000 ключей в секунду, а другой как я понял пишет что с 9800 GTX получил ключ за 376 020 / сек(примерно 4 дня)
Ссылка на комментарий
Поделиться на других сайтах

9800 GTX получил ключ за 376 020 / сек(примерно 4 дня)

в оригинале написано "376020 key/sec"... сколько дней нужно считать исходя из этой скорости

 

нужно GTX480 или домашние кластеры Tesla от нвидии))

Изменено пользователем AlexCorvis
Ссылка на комментарий
Поделиться на других сайтах

как то не верится... ключ 128 бит, 2^128 вариантов. даже перебирая по млрд в секунду нужно 10790283070806014188970 лет... если 4 дня это правда значит там не просто брут а автор чего то знает про то как формируются ключи...
Ссылка на комментарий
Поделиться на других сайтах

как то не верится... ключ 128 бит, 2^128 вариантов. даже перебирая по млрд в секунду нужно 10790283070806014188970 лет... если 4 дня это правда значит там не просто брут а автор чего то знает про то как формируются ключи...

Да, Вы правы. Причем они там всем форумом ему новые алгоритмы подсказывают, он вписывает в условия. Извиняюсь за дезинформацию в первом посте.

Просто до меня не доходит: Нафиг этот ключ-то нужен?

Ссылка на комментарий
Поделиться на других сайтах

Просто до меня не доходит: Нафиг этот ключ-то нужен?

это как раз просто, допустим привод сгорел при прошивке а ключа нету... имея CPU-key можно достать его из KV.

Ссылка на комментарий
Поделиться на других сайтах

это как раз просто, допустим привод сгорел при прошивке а ключа нету... имея CPU-key можно достать его из KV.

Всё, понял. Спасибо!

Ссылка на комментарий
Поделиться на других сайтах

Почитал ихний форум... никто там ничего не нашел и никаких крутых алгоритмов не предлагают. Бессмысленное занятие в общем - брутить 128 бит, хоть на видюхах хоть на суперкомпах хоть облаками... (помнится RSA-64 всем миром почти 5 лет подбирали)
Ссылка на комментарий
Поделиться на других сайтах

это как раз просто, допустим привод сгорел при прошивке а ключа нету... имея CPU-key можно достать его из KV.

пфф... только из-за этого??? проще уж консоль купить новую в таком случае...

я тоже не совсем понимаю чего это даст...

 

понимаю если бы можно было откаты прошивок делать, код неподписанный запускать... а так...

Ссылка на комментарий
Поделиться на других сайтах

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Security.Cryptography;

using System.IO;

 

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

Console.BufferHeight = 1024;

 

bool IsExport = true;//true;

 

FileStream FilePacket = new FileStream("F:\\KV_dec.bin", FileMode.Open, FileAccess.Read);

byte[] packet = new byte[FilePacket.Length];

for (int i = 0; i != FilePacket.Length; i++) packet = Convert.ToByte(FilePacket.ReadByte());

FilePacket.Close();

Console.WriteLine("Lenght KV.bin: {0}", packet.Length);

Console.WriteLine("Start search hash");

 

byte[] K = new byte[16];

byte[] K1 = new byte[16];

byte[] K2 = new byte[16];

byte[] K3 = new byte[16];

 

byte[] checksum = { 0xB2, 0x25, 0x18, 0xDE, 0xE8, 0xE9, 0x97, 0xFE, 0x73, 0x1F, 0x74, 0xAD, 0x70, 0x9F, 0x6D, 0x94 };

byte[] enc_confounder = { 0x88, 0x5A, 0x21, 0x1B, 0x7D, 0xE8, 0x88, 0x9F };

byte[] enc_data = { 0xEA, 0x54, 0x25, 0x2C, 0xD4, 0x4E, 0x3D, 0x14, 0x6E, 0xA4, 0xF0, 0xDA, 0xE4, 0xB2, 0x52, 0x7E, 0x1B, 0x08, 0x92, 0x9A, 0xCE, 0x76, 0x6C, 0x59, 0x7C, 0xEF, 0x9D, 0xB2 };

 

byte[] testchecksum = new byte[checksum.Length];

byte[] dec_confounder = new byte[enc_confounder.Length];

byte[] dec_data = new byte[enc_data.Length];

byte[] fortestchecksum = new byte[enc_confounder.Length + enc_data.Length];

 

for (int g = 0; g != packet.Length - 16; g++)

{

for (int z = 0; z != 16; z++) K[z] = packet[g + z];

DecodeTimestamp(K, K1, K2, K3, checksum, enc_confounder, enc_data, testchecksum, dec_confounder, dec_data, fortestchecksum, IsExport);

}

 

Console.WriteLine("End");

Console.ReadLine();

}

 

private static void DecodeTimestamp(byte[] K, byte[] K1, byte[] K2, byte[] K3, byte[] checksum, byte[] enc_confounder, byte[] enc_data, byte[] testchecksum, byte[] dec_confounder, byte[] dec_data, byte[] fortestchecksum, bool IsExport)

{

int messageType = 14;

byte[] messageTypeBuffer = new byte[4];

messageTypeBuffer[3] = (byte)messageType;

HMACMD5 hmac_md5 = new HMACMD5(K);

if (IsExport)

{

byte[] L40 = new byte[14];

byte[] fortybits = (byte[]) Encoding.ASCII.GetBytes("fortybits");

for (int y = 0; y != fortybits.Length; y++) L40[y] = fortybits[y];

for (int y = 10; y != 14; y++) L40[y] = messageTypeBuffer[y - 10];

K1 = hmac_md5.ComputeHash(L40, 0, 14);

}

else K1 = hmac_md5.ComputeHash(messageTypeBuffer, 0, 4);

for (int y = 0; y != 16; y++) K2[y] = K1[y];

if (IsExport) for (int y = 7; y != 16; y++) K1[y] = 0xAB;

hmac_md5 = new HMACMD5(K1);

K3 = hmac_md5.ComputeHash(checksum, 0, checksum.Length);

dec_confounder = RC4(K3, enc_confounder);

dec_data = RC4(K3, enc_data);

for (int y = 0; y != dec_confounder.Length; y++) fortestchecksum[y] = dec_confounder[y];

for (int y = 0; y != dec_data.Length; y++) fortestchecksum[dec_confounder.Length + y] = dec_data[y];

hmac_md5 = new HMACMD5(K2);

testchecksum = hmac_md5.ComputeHash(fortestchecksum, 0, fortestchecksum.Length);

bool IdentChk = true;

for (int y = 0; y != checksum.Length; y++) if (testchecksum[y] != checksum[y]) IdentChk = false;

if (IdentChk)

{

string strTimestamp = "";

for (int i = 0; i < dec_data.Length; i++) strTimestamp += Convert.ToChar(dec_data);

Console.WriteLine("Decrypted Timestamp: {0}", strTimestamp);

dump("testchecksum", testchecksum);

dump("K", K);

Console.ReadLine();

}

}

 

private static void dump(string str, byte[] digest)

{

Console.Write("\n{0} = ", str);

for (int i = 0; i < digest.Length; i++) Console.Write("{0} ", digest.ToString("X2"));

Console.Write("\n");

}

 

private static byte[] RC4(byte[] K3, byte[] InInfo)

{

byte[] OutInfo = new byte[inInfo.Length];

byte[] S = new byte[256];

for (int i = 0; i <= 255; i++) S = (byte)i;

int j = 0;

for (int i = 0; i <= 255; i++)

{

j = (j + S + K3[i % K3.Length]) & 255;

byte t = S;

S = S[j];

S[j] = t;

}

int Q1, Q2;

Q1 = Q2 = 0;

for (int i = 0; i != InInfo.Length; i++)

{

Q1 += 1 & 255;

Q2 = (Q2 + S[Q1]) & 255;

byte t = S[Q1];

S[Q1] = S[Q2];

S[Q2] = t;

OutInfo = (byte)(InInfo ^ S[(S[Q1] + S[Q2]) & 255]);

}

return OutInfo;

}

}

}

 

Довел программу расшифровки временной метки. Теперь остаетстся предположение, что в майкрософт немного модифицировали RC4, в результате причина неудачи расшифровки.

Надо искать информацию по RC4 в ХВОХ360

Ссылка на комментарий
Поделиться на других сайтах

Усовершенствовал свою программу в очередной раз... теперь сама берет трафик...

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Security.Cryptography;

using System.IO;

 

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

Console.BufferHeight = 1024;

 

bool IsExport = false;//true;

 

FileStream FilePacket = new FileStream(@"F:\Src\KV_dec.bin", FileMode.Open, FileAccess.Read);

byte[] packet = new byte[FilePacket.Length];

FilePacket.Read(packet, 0, packet.Length);

FilePacket.Close();

 

Console.WriteLine("Lenght KV.bin: {0} bytes", packet.Length);

 

StreamReader reader = new StreamReader(@"F:\Src\snif_traffic.txt");

string line = null;

while ((line = reader.ReadLine()) != null)

{

if (line == "Type (2) - Encrypted Timestamp Pre-authentication")

{

for (int i = 0; i != 3; i++) line = reader.ReadLine();

break;

}

}

line = line.Replace(" ", "");

 

byte[] encTS = new byte [line.Length / 2];

int countEncTS = 0;

 

string hex = null;

foreach (char ch in line)

{

hex += ch;

if (hex.Length == 2)

{

encTS[countEncTS] = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);

hex = null;

countEncTS++;

}

}

 

byte[] checksum = new byte[16];

byte[] enc_confounder = new byte[8];

byte[] enc_data = new byte[encTS.Length - 24];

 

Array.Copy(encTS, 0, checksum, 0, checksum.Length);

Array.Copy(encTS, checksum.Length, enc_confounder, 0, enc_confounder.Length);

Array.Copy(encTS, checksum.Length + enc_confounder.Length, enc_data, 0, enc_data.Length);

 

dump("checksum", checksum);

dump("enc_confounder", enc_confounder);

dump("enc_data", enc_data);

Console.WriteLine();

 

Console.WriteLine("Start search hash");

 

byte[] K = new byte[16];

byte[] K1 = new byte[16];

byte[] K2 = new byte[16];

byte[] K3 = new byte[16];

 

byte[] K1AB = { 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB };

 

byte[] testchecksum = new byte[checksum.Length];

byte[] dec_confounder = new byte[enc_confounder.Length];

byte[] dec_data = new byte[enc_data.Length];

byte[] fortestchecksum = new byte[enc_confounder.Length + enc_data.Length];

 

for (int g = 0; g != packet.Length - 15; g++)

{

Array.Copy(packet, g, K, 0, 16);

DecodeTimestamp(K, K1, K2, K3, checksum, enc_confounder, enc_data, testchecksum, dec_confounder, dec_data, fortestchecksum, K1AB, IsExport);

}

 

Console.WriteLine("End");

Console.ReadLine();

}

 

/* RFC 4757 RC4-HMAC December 2006

 

* These encryption types use key derivation. With each message, the message type (T) is used as a component of the keying

material. The following table summarizes the different key derivation values used in the various operations. Note that

these differ from the key derivations used in other Kerberos encryption types.

T = the message type, encoded as a little-endian four-byte integer:

1. AS-REQ PA-ENC-TIMESTAMP padata timestamp, encrypted with the client key (T=1)

2. AS-REP Ticket and TGS-REP Ticket (includes TGS session key or application session key), encrypted with the service key (T=2)

3. AS-REP encrypted part (includes TGS session key or application session key), encrypted with the client key (T=8)

4. TGS-REQ KDC-REQ-BODY AuthorizationData, encrypted with the TGS session key (T=4)

5. TGS-REQ KDC-REQ-BODY AuthorizationData, encrypted with the TGS authenticator subkey (T=5)

6. TGS-REQ PA-TGS-REQ padata AP-REQ Authenticator cksum, keyed with the TGS session key (T=6)

7. TGS-REQ PA-TGS-REQ padata AP-REQ Authenticator (includes TGS authenticator subkey), encrypted with the TGS session key T=7)

8. TGS-REP encrypted part (includes application session key), encrypted with the TGS session key (T=8)

9. TGS-REP encrypted part (includes application session key), encrypted with the TGS authenticator subkey (T=8)

10. AP-REQ Authenticator cksum, keyed with the application session key (T=10)

11. AP-REQ Authenticator (includes application authenticator subkey), encrypted with the application session key (T=11)

12. AP-REP encrypted part (includes application session subkey), encrypted with the application session key (T=12)

13. KRB-PRIV encrypted part, encrypted with a key chosen by the application. Also for data encrypted with GSS Wrap (T=13)

14. KRB-CRED encrypted part, encrypted with a key chosen by the application (T=14)

15. KRB-SAFE cksum, keyed with a key chosen by the application. Also for data signed in GSS MIC (T=15)

 

The character constant "fortybits" evolved from the time when a 40-bit key length was all that was exportable from the

United States. It is now used to recognize that the key length is of "exportable" length.

In this description, the key size is actually 56 bits.

*/

private static void DecodeTimestamp(byte[] K, byte[] K1, byte[] K2, byte[] K3, byte[] checksum, byte[] enc_confounder, byte[] enc_data, byte[] testchecksum, byte[] dec_confounder, byte[] dec_data, byte[] fortestchecksum, byte[] K1AB, bool IsExport)

{

byte[] T = new byte[4];

T[0] = (byte)1;//little-endian//AS-REQ PA-ENC-TIMESTAMP padata timestamp, encrypted with the client key (T=1)

 

HMACMD5 hmac_md5 = new HMACMD5(K);

if (IsExport)

{

byte[] L40 = new byte[14];

Array.Copy(Encoding.ASCII.GetBytes("fortybits"), 0, L40, 0, 9);

Array.Copy(T, 0, L40, 10, 4);

K1 = hmac_md5.ComputeHash(L40, 0, 14);

}

else K1 = hmac_md5.ComputeHash(T, 0, 4);

 

Array.Copy(K1, 0, K2, 0, K2.Length);

if (IsExport) Array.Copy(K1AB, 0, K1, 7, 9);

 

hmac_md5 = new HMACMD5(K1);

K3 = hmac_md5.ComputeHash(checksum, 0, checksum.Length);

 

dec_confounder = IARC4(K3, enc_confounder);

dec_data = IARC4(K3, enc_data);

 

Array.Copy(dec_confounder, 0, fortestchecksum, 0, dec_confounder.Length);

Array.Copy(dec_data, 0, fortestchecksum, dec_confounder.Length, dec_data.Length);

 

hmac_md5 = new HMACMD5(K2);

testchecksum = hmac_md5.ComputeHash(fortestchecksum, 0, fortestchecksum.Length);

 

if (checksum.SequenceEqual(testchecksum))

{

string strTimestamp = "";

for (int i = 0; i < dec_data.Length; i++) strTimestamp += (char) dec_data;

Console.WriteLine("Decrypted Timestamp: {0}", strTimestamp);

dump("testchecksum", testchecksum);

dump("K", K);

}

}

 

private static void dump(string str, byte[] digest)

{

Console.Write("\n{0} = ", str);

for (int i = 0; i < digest.Length; i++) Console.Write("{0} ", digest.ToString("X2"));

Console.Write("\n");

}

 

private static byte[] IARC4(byte[] K3, byte[] InStream)

{

byte[] OutStream = new byte[inStream.Length];

byte[] S = new byte[256];

for (int i = 0; i <= 255; i++) S = (byte) i;

int j = 0;

for (int i = 0; i <= 255; i++)

{

j = (j + S + K3[i % K3.Length]) & 255;

byte t = S;

S = S[j];

S[j] = t;

}

int Q1, Q2;

Q1 = Q2 = 0;

for (int i = 0; i != InStream.Length; i++)

{

Q1 += 1 & 255;

Q2 = (Q2 + S[Q1]) & 255;

byte t = S[Q1];

S[Q1] = S[Q2];

S[Q2] = t;

OutStream = (byte)(InStream ^ S[(S[Q1] + S[Q2]) & 255]);

}

return OutStream;

}

 

Программисты, окажите посильную помощь в нахождении в KV хеша пароля к серверу XEAS.XBOXLIVE.COM

Ссылка на комментарий
Поделиться на других сайтах

пфф... только из-за этого??? проще уж консоль купить новую в таком случае...

я тоже не совсем понимаю чего это даст...

 

понимаю если бы можно было откаты прошивок делать, код неподписанный запускать... а так...

Как раз неподписанный код можно будет запускать. Точнее подписать его этим самым ключом.

Ссылка на комментарий
Поделиться на других сайтах

предполагаемая версия модифицированного RC4 отпадает, т.к. KeyVault расшифровывается без проблем

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Security.Cryptography;

using System.IO;

 

namespace DecryptorKV

{

class Program

{

static void Main(string[] args)

{

Console.BufferHeight = 1024;

byte[] CPUkey = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

HMACSHA1 sha1 = new HMACSHA1(CPUkey);

 

FileStream FilePacket = new FileStream(@"D:\kv\KV_enc.bin", FileMode.Open, FileAccess.Read);

byte[] packet = new byte[FilePacket.Length];

FilePacket.Read(packet, 0, packet.Length);

FilePacket.Close();

 

byte[] HmacMess = new byte[16];

Array.Copy(packet, 0, HmacMess, 0, 16);

 

byte[] arc4s = sha1.ComputeHash(HmacMess);

 

byte[] arc4d = new byte[16];

Array.Copy(arc4s, 0, arc4d, 0, 16);

 

byte[] encStream = new byte[packet.Length - 16];

Array.Copy(packet, 16, encStream, 0, encStream.Length);

 

byte[] decStream = new byte[encStream.Length];

decStream = MARC4(arc4d, encStream);

 

FileStream FilePacketSave = new FileStream(@"D:\kv\KV_decrypted.bin", FileMode.Create, FileAccess.Write);

for (int i = 0; i != 16; i++) FilePacketSave.WriteByte(HmacMess);

for (int i = 0; i != decStream.Length; i++) FilePacketSave.WriteByte(decStream);

FilePacketSave.Close();

 

dump("arc4", arc4d);

 

Console.ReadLine();

}

 

private static void dump(string str, byte[] digest)

{

Console.Write("\n{0} = ", str);

for (int i = 0; i < digest.Count(); i++) Console.Write("{0} ", digest.ToString("X2"));

Console.Write("\n");

}

 

public static byte[] MARC4(byte[] K3, byte[] InStream)

{

byte[] OutStream = new byte[inStream.Length];

Array.Copy(InStream, 0, OutStream, 0, InStream.Length);

byte[] s = new byte[256];

byte[] k = new byte[256];

byte temp;

int i, j;

 

for (i = 0; i < 256; i++)

{

s = (byte)i;

k = K3[i % K3.Length];

}

 

j = 0;

for (i = 0; i < 256; i++)

{

j = (j + s + k) % 256;

temp = s;

s = s[j];

s[j] = temp;

}

 

i = j = 0;

for (int x = 0; x < OutStream.Length; x++)

{

i = (i + 1) % 256;

j = (j + s) % 256;

temp = s;

s = s[j];

s[j] = temp;

int t = (s + s[j]) % 256;

OutStream[x] ^= s[t];

}

return OutStream;

}

}

}

Ссылка на комментарий
Поделиться на других сайтах

Сейчас установлю программы, и захвачу трафф. ( если еще нужно )

 

p.s. моя консолька сегодня получила бан, и поэтому вопрос об обходе бана стоит на первом месте :biggrin:

Ссылка на комментарий
Поделиться на других сайтах

Сейчас установлю программы, и захвачу трафф. ( если еще нужно )

 

p.s. моя консолька сегодня получила бан, и поэтому вопрос об обходе бана стоит на первом месте :biggrin:

 

Конечная цель - альтернативный Лайв. Нужно еще несколько толковых программистов!

у меня все необходимые материалы имеются.

Изменено пользователем alxxbx
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...