PDA

Просмотр полной версии : Сниффер


Страницы : 1 [2]

Mayss
07.11.2011, 16:23
Привет :pleasantry:.
Опкоды меняются с каждым билдом начиная с релиза катаклизма. Близзы своим алгоритмом каждый раз генгерят рандомный набор опкодов.
По идее должна же быть некая последовательность расшифровки всех их под один "точный" опкод?, или там используется более "продвинутая" система расчета?.

Forgotten
07.11.2011, 16:32
По идее должна же быть некая последовательность расшифровки всех их под один "точный" опкод?, или там используется более "продвинутая" система расчета?.

а зачем упрощать жизнь разработчикам? помоему там обычный рандом..

Deamon
07.11.2011, 18:01
По идее должна же быть некая последовательность расшифровки всех их под один "точный" опкод?, или там используется более "продвинутая" система расчета?.

А зачем? Запустил специальную программку, программка сгенерила специальный .h файл с данными вида
#define SMSG_MONSTER_MOVE 0x2367
#define SMSG_COMPRESSED_DATA 0x6812
...
и т.д. Этот файлик подставили в клиентский проект, подставили в проект сервера. Скомпилировали оба проекта, и вуаля. Имеем пару клиент-сервер с рандомным набором опкодов.

ЗЫ: я немного утрирую. В начале клизмы, наверное и сейчас, в клиенте использовался condensedID - порядковый номер опкода, который получался из полного номера опкода по спец. алгоритму. Алгоритм менялся раз в несколько билдов. "Особо умные" могут сказать, что condesedID - это и есть старые опкоды, но нет. Никакой связи между старыми опкодами и новыми - нет. codensedID используется, как индекс для получения указателя на обработчик из массива указателей обратчиков опкодов. Ни более ни менее.

SeT
07.11.2011, 18:13
Почему из клиента нельзя вытащить алгоритм рассшифровки или сам список опкодов?
add. И напомните еще пожалуйста, зачем щас патчат клиент?

Deamon
07.11.2011, 18:43
Почему из клиента нельзя вытащить алгоритм рассшифровки или сам список опкодов?
add. И напомните еще пожалуйста, зачем щас патчат клиент?

1) Алгоритм расшифрофки? Ты имеешь ввиду condensedID? Еще раз. Нету никой связи между condensedID и старыми опкодами. Если быть точным, то близы рандомят опкод в виде condensedID, а потом по своему алгоритму вычисляют полный опкод. Это единственное отличие от того, что я написал выше.
2) Точно не скажу, ибо сам уже не помню. Вроде бы battle.net2 для авторизации использует загружаемые dll файлы. В конце этого dll файла стоит RSA подпись, проверяемая клиентом. RSA подпись подделать почти нереально, т.е. левую dllку клиенту не подсунешь. И, если мне не изменяет память, внутри dll-ки находится RSA ключ, которым должно расшифроваться сообщение от сервера во время авторизации. Т.е. опять из-за слишком малой вероятности подобрать секретную пару для RSA ключа - подделать сообщение от сервера невозможно. Итого, пройти авторизацию BN2 нужно пропатчить клиент, чтобы обойти эти ограничения.

MaS0n
07.11.2011, 19:17
зачем патчат - http://ru-mangos.ru/showpost.php?p=13863&postcount=488 и далее этой теме на 13 странице

Кратко : SMSG_REDIRECT_CLIENT подписан, сгенерировать свой без RSA ключа невозможно, а клиент без этого пакета не работает, не отправляет например movement пакеты, патчат - просто сбрасывая все пакеты в одно соединение, чтоб обойтись без переключения соединений

LordJZ
08.11.2011, 04:43
Почему из клиента нельзя вытащить алгоритм рассшифровки или сам список опкодов?
add. И напомните еще пожалуйста, зачем щас патчат клиент?Почти полный список S2C опкодов получить при нужной сноровке можно за 10 минут, например, 4.2.2 (http://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/332667-wow-4-2-2-14545-info-dump-thread-4.html#post2145578).

Lordronn
20.11.2011, 00:45
Со всем разобрался, вот сделал снифф. Проверьте все верно тут или нет

http://filebeam.com/ce3a2877913b3c86fa5e7c154e20a44f

b0rg
25.11.2011, 11:33
Я уже реализовал подход с перехватом как ты говоришь "баянистым" -) путем джампа на месте стандартного пролога. и все чудесно, антивирь молчит, вов играет, я получаю данные.
Кстати есть такая штука: detours - автор сама MS, сейчас это монстрило стоит 10к зелени, но первый ее простой вариант в виде одного .h и 1 .cpp файла прекрасно справляется с поставленой задачей

Все это ловится несложно, в случае подозрений в близзард уходит ws2_32.dll из памяти и смотрится уже человеком. А там jmp'ы в далекую даль... Спрятаться можно, но патчить нужно не известными на весь инет способами, а хитро на один-два уровня ниже - чтобы простым встроенным дизасемблером не находилось.

Сейчас смотрю swtor, там вот такое встречается: Cloaked DLL found, Detour function found. Так что не ловится до тех пор пока лень програмерам близзардовским.

Йоха
28.11.2011, 09:57
Все это ловится несложно, в случае подозрений в близзард уходит ws2_32.dll из памяти и смотрится уже человеком. А там jmp'ы в далекую даль... Спрятаться можно, но патчить нужно не известными на весь инет способами, а хитро на один-два уровня ниже - чтобы простым встроенным дизасемблером не находилось.

Сейчас смотрю swtor, там вот такое встречается: Cloaked DLL found, Detour function found. Так что не ловится до тех пор пока лень програмерам близзардовским.

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

Ven
30.11.2011, 10:42
кто-нибудь уже нашел как сиды собираются?
Мои мысли привели меня сюда sub_6943A0,
вроде что-то похожее, но пока нету возможности проверить


int __thiscall sub_6943A0(void *this, int a2, int a3)
{
int v3; // edi@1
int v4; // esi@1
signed int v5; // ebx@1
int result; // eax@3
void *v7; // [sp+Ch] @1

v3 = a2;
v7 = this;
v4 = (int)((char *)this + 20);


[B] v5 = 8;
do
{
a2 = 0;
CDataStore::GetInt32(v3, (int)&a2);
*(_DWORD *)v4 = a2;
v4 += 4;
--v5;
}
while ( v5 );


a2 = 0;
CDataStore::GetInt32(v3, (int)&a2);
*((_DWORD *)v7 + 4) = a2;
BYTE3(a2) = 0;
result = CDataStore::GetInt8(v3, (int)((char *)&a2 + 3));
*((_BYTE *)v7 + 52) = BYTE3(a2);
return result;
}

Йоха
30.11.2011, 14:22
Тут просто копирование 8 int'ов в какую-то переменную со смещением 20 от this.

я пока не смотрел 15005, но предыдущих билдах сиды были перемешаны

[Добавлено]

посмотрел 15005, похоже ты прав. По аналогии скорее всего это и есть чтение сидов. Странно только то, что теперь они идут просто подряд без перемешивания.

HuntsMan
06.12.2011, 16:47
Говорят в 4.3 добавили потоковое сжатие. Никто ещё не разбирался с этим?

Lordronn
06.12.2011, 17:51
Мм посмотрел тут мув. часть SMSG_UPDATE_OBJECT и не догоняю. Толи я не то нашел, толи они ее опять покаряжили.
sub_697330 - оно?

Пытался спарсить с помощью структуру с 4.2, но упал после первого юнита. У него в мув. часте были все 0, а апдейт флаг UPDATEFLAG_UNK3 = 0x1000,

LordJZ
11.12.2011, 16:03
Мм посмотрел тут мув. часть SMSG_UPDATE_OBJECT и не догоняю. Толи я не то нашел, толи они ее опять покаряжили.
sub_697330 - оно?

Пытался спарсить с помощью структуру с 4.2, но упал после первого юнита. У него в мув. часте были все 0, а апдейт флаг UPDATEFLAG_UNK3 = 0x1000,https://gist.github.com/1460491

RomanRom2
21.08.2012, 11:50
хотел спросить, сейчас снифер какой нить есть рабочий? кто нить чо нить ваще снифает? какие сейчас подводные камни? вытаскивается ли ключ? информацией конечно же никто не поделиться, хотя бы скажите да/нет.

Lordronn
21.08.2012, 12:30
.:: Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 200 сообщение(ий)) ::.

aleksis
22.08.2012, 13:24
А естьли Снифер для mop?

RomanRom2
25.08.2012, 10:17
куда снифы раздавать? есть ли централизованное место сбора или просто куда то кому то сливать и всё? есть ли возможность мне брать их?

aleksis
25.08.2012, 20:16
Нужно новое снифить с мор кто сможет помочь с этим. Буду очень благодарен.

YuruY
26.08.2012, 06:51
МоПа еще не вышла, выйдет, будем думать.
Накой бетту собирать, потом выкидывать и пересобирать?

Fmut
03.09.2012, 14:30
А можно мне тоже снифер? :)

Fedia22
03.09.2012, 15:45
.:: Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 333 сообщение(ий)) ::.

А можно мне тоже снифер? :)
уважаемый, вы дажу удасужились совершить ошибку в 5 словах :) ай-яй-яй

HuntsMan
04.12.2012, 02:37
куда снифы раздавать? есть ли централизованное место сбора или просто куда то кому то сливать и всё? есть ли возможность мне брать их?
Есть идеи как можно все это красиво организовать. Вот только кто возьмется это захостить?

RomanRom2
04.12.2012, 06:26
нуу, допустим :yes3:

Sid
04.12.2012, 07:24
Пиратбей? :)

RomanRom2
04.12.2012, 20:38
ну так чоо там чоо там? или не хотим озвучивать в паблик?
скайпы/аськи знаете, пишите.

YuruY
04.12.2012, 21:02
дак чоо??
Сниффера нет.(

RomanRom2
04.12.2012, 21:40
я думал у вас то есть...

Amaru
05.12.2012, 03:21
Поделитесь, пожалуйста, снифами лфг 4.3.4 15595 :(

HuntsMan
05.12.2012, 13:04
Можно сделать один единственный прокси сервер, или несколько, чтобы близзы особо не палили. Весь снифающий народ будет играть через эти прокси сервера, траффик будет сразу записываться в общую базу (т.е. отпадает проблема с "ну чо, наснифал?"). Правда может это слишком палевно будет. Насчет общего хранилища, я себе представляю его примерно вот так: у каждого хранящегося снифа в базе есть свои мета теги (версия, в каких зонах побывал, какие квесты выполнил), они присваиваются при загрузке снифа в базу. Можно заливать как чистый pkt, так и raw (конвертирование происходит на стороне сервера), так и в архивах. По доступу можно будет связать с этим форумом, либо отдельную базу аккаунтов с правами. Я сейчас дописываю снифер под моп, затем потихоньку начну пописывать это хранилище.

Sid
05.12.2012, 14:10
Получается какой-то наркокартель с заводом по производству сниффов)

HuntsMan
05.12.2012, 16:12
снифокортель :D
А вообще, давно пора все централизировать. Так всем проще будет, и разработчикам ядра, и базы, и скриптов. Не нужно будет бегать у всех и спрашивать "а у тебя есть {sniffname}?"

RomanRom2
05.12.2012, 19:29
мысль здравая, поддерживаю. снифер какого типа под моп?

HuntsMan
05.12.2012, 22:19
Пока что proxy, но застрял на шифровании :(

RomanRom2
06.12.2012, 01:18
сделай raw для начала, я декодер дам. потом прикрутишь расшифровку. хотя я конечно смысла в этом не особо вижу... хоть чем то снифать можно будет.

HuntsMan
08.01.2013, 23:07
А кто-нибудь копал по поводу large пакетов в пандах? Я что-то никак не найду, где они разбираются.

Yester
20.01.2013, 23:31
у кого нибудь уже есть сниффер под 5.х.х? поделитесь))

Amaru
15.10.2013, 15:02
Если снифать через Proxocket (http://www.netresec.com/?page=Blog&month=2011-01&post=Proxocket---A-Winsock-Proxy-Sniffer) - подменой ws2_32.dll и wsock32.dll - какова вероятность того что это спалит варден?