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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 27.04.2010, 18:34   #21
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

толи таблицы формируются другим алгоритмом, толи выборка из них идет другим способом. Хз как проверить. Но нетПинг и ЧарактерСелект не меняют своего ИД.

Добавлено через 4 минуты
Код:
     cur_pos := Pos(#$12, _1_byte_table);
     x := GInt(_1_byte_table, $13, 1);
     PInt(_1_byte_table, $12, $13, 1);
     PInt(_1_byte_table, x, cur_pos, 1);

     cur_pos := Pos(#$B1, _1_byte_table);
     x := GInt(_1_byte_table, $B2, 1);
     PInt(_1_byte_table, $B1, $B2, 1);
     PInt(_1_byte_table, x, cur_pos, 1);
Вот тута ИД нетПинга ($B1) и ЧарактерСелект($12) встают на свои места.

Добавлено через 4 минуты
А может они вообще функцию псевдорандома поменяли?

Последний раз редактировалось guplen, 27.04.2010 в 18:34. Причина: Добавлено сообщение
guplen вне форума   Ответить с цитированием
Старый 28.04.2010, 02:11   #22
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию

Надо посмотреть и попробывать, а за архивчик спасиб =)
Asmoday вне форума   Ответить с цитированием
Старый 29.04.2010, 01:22   #23
Новичок
 
Регистрация: 28.04.2010
Сообщений: 15
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
aSproot пока неопределено
По умолчанию

Спасите мой мозг, какой из байтов пакета OB использует этот код (исходник инициализации корректора из л2пх)
Код:
  with CorrectorData^ do if FromServer then begin
    if _id_mix and(buff[3]=#$0b)then begin
      temp_seed:=PInteger(@buff[PWord(@buff[1])^-3])^;
      _init_tables(temp_seed,_2_byte_table_size);
    end;
//xkor: последние 4 байта)


Сходство Obfuscation Key из Key Packet и нашего мистического ключа из CharacterSelected - они оба 4 байта. Не шарю зачем он нужен, но может просто поксорить их..

Код:
if(buff[3]=#$2e)then begin
      //if(Protocol = 871)or(Protocol = 12)then _init_tables(PInteger(@buff[$16])^, $58); // CT2.2
      //if(Protocol = 851)or(Protocol = 19)then _init_tables(PInteger(@buff[$16])^, $55); // CT2
      //if Protocol = 831 then _init_tables(PInteger(@buff[$16])^, $4E); // CT1.5+
      _init_tables(PInteger(@buff[$16])^, $80);
Obfuscation Key - это сид ГСЧ для составления таблиц DES(или каких там) по которым кодируются ID пакетов. buff[$16] - это он?

Добавлено через 3 часа 43 минуты
Получается что алгоритм корректора повторён в пакхаке, использует оба сида. Что ж ему не нравится..

Последний раз редактировалось aSproot, 29.04.2010 в 01:22. Причина: Добавлено сообщение
aSproot вне форума   Ответить с цитированием
Старый 29.04.2010, 09:33   #24
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Писал человеку, который знает этот алгоритм. Он дал подсказку: надо что-то сделать в ключом, чтобы его использовать. С каким из двух ключей надо что-то делать не сказал. Но, с первым, тот что их КейПакета ничего делать не надо,с ним все в порядке. Надо что-то делать с ключем из ЧарактерСелект
guplen вне форума   Ответить с цитированием
Старый 29.04.2010, 10:59   #25
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию

Я так понимаю, что скорее всего для того чтоб получить тот необходимый ключ строка должна выглядеть примерно так
Код:
temp_seed:=PInteger(@buff[PWord(@buff[1])^-3])^+$XXX;
где $XXX является константой. Повторюсь, что это лишь мои домыслы.

Добавлено через 4 минуты
guplen, не помнишь де на аллчитерсе темка про этот серв? Я находил как-то, счас чет не получается. Там месага была под хайдом 150 сообщений. Думаю может попросить скинуть на мыло.

Последний раз редактировалось Asmoday, 29.04.2010 в 10:59. Причина: Добавлено сообщение
Asmoday вне форума   Ответить с цитированием
Старый 29.04.2010, 18:27   #26
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Asmoday, вот тема http://allcheats.ru/t141726/
guplen вне форума   Ответить с цитированием
За это сообщение guplen нажился спасибкой от:
Старый 29.04.2010, 21:40   #27
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию

пасиб
Asmoday вне форума   Ответить с цитированием
Старый 29.04.2010, 23:42   #28
Новичок
 
Регистрация: 28.04.2010
Сообщений: 15
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
aSproot пока неопределено
По умолчанию

Идея тут такая. Отключаем корректор для всех пакетов после $0B. Из расшифрованного $0B запоминаем Key. Логинимся, тыкаем в кнопки(посылаем пакет $Х) и ждём пока придёт пакет (зашифрованный клиентом но нерасшифрованный нами) $01(movebacktolocation). Теперь смотрим в алгоритм корректора - table1[$02] = $X, т.е. при генерации таблицы в первой($02) ячейке лежит пакет $Х(мы его знаем, т.к. помним какую кнопку жали)
Итого имеем соответствие:
Код:
$X = ((Int64(_seed) * $343fd + $269EC3) and $FFFFFFFF) shr $10) and $7FFF;
то что справа это 1ая генерация псевдоГСЧ, лежащая в первой ячейке таблицы.
Дальше ищем соответствие Key и seed. Если это соответствие линейно (+$XXX), то все неизвестные найдутся на раз.

Собственно, я бы эту лабуду тут и не писал бы, если б сам мог проверить. Но столкнулся с проблемой - если в _decode_ID начинаем отфильтровывать только отдельные пакеты ($0B и $12) то отваливаемся от сервера. Почему?? Разве ПХ изменяет поток пакетов клиент->сервер?

Спасибо.
aSproot вне форума   Ответить с цитированием
Старый 30.04.2010, 00:41   #29
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию

А зачем вобще использовать корректор для первых двух пакетов? Во всех пакетах изменяется только ID, все данные остаются неизменны. Т.е. кей ты можешь и "ручками" запомнить из пакета 0B.

Добавлено через 4 минуты
Цитата:
Сообщение от aSproot Посмотреть сообщение
Собственно, я бы эту лабуду тут и не писал бы, если б сам мог проверить. Но столкнулся с проблемой - если в _decode_ID начинаем отфильтровывать только отдельные пакеты ($0B и $12) то отваливаемся от сервера. Почему?? Разве ПХ изменяет поток пакетов клиент->сервер?
Спасибо.
Собственно потому, что, но сколько я понял алгоритм работы корректора, срабатывать (или не срабатывать) должны процедуры декоде и инкоде соответственно.
Т.е. либо необходимо отключать и инкоде и декоде либо вобще сделать как написал выше.Сейчас к сожелению практически нет времени разбираться с шифрованием, если кинешь код своего алгоритма магу проверить =)

Добавлено через 2 минуты
Кстати можно просто сделать с 1 нормального конекта рав-лог (с выключенной процедурой корректора) и затем уже с ним работать.

Последний раз редактировалось Asmoday, 30.04.2010 в 00:41. Причина: Добавлено сообщение
Asmoday вне форума   Ответить с цитированием
Старый 30.04.2010, 01:38   #30
Новичок
 
Регистрация: 28.04.2010
Сообщений: 15
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
aSproot пока неопределено
По умолчанию

Цитата:
А зачем вобще использовать корректор для первых двух пакетов?

если кинешь код своего алгоритма магу проверить
потому что это одна строчка =) (та что закоменченная)
Код:
procedure _decode_ID;
	begin
    with CorrectorData^ do begin
    //if (_1_byte_table[Byte(buff[3])+1] = #$2B) or (_1_byte_table[Byte(buff[3])+1] = #$12) then begin
	  buff[3]:=_1_byte_table[Byte(buff[3])+1];
      if buff[3] = #$D0 then begin
Цитата:
декоде и инкоде соответственно
Да, оказалось что это так. Опасненько, надо сказать. Было бы логичней шифровать только пакеты, вносимые/изменяемые скриптами. А всё что идёт от клиента пропускать без изменений.

Про рав-лог хорошая идея.
aSproot вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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