Страница 15 из 16

Добавлено: Сб янв 13, 2007 4:29 pm
DInvalid
japplegame писал(а):Этот баг наблюдается только с функцией 0E? Есть какая-то корреляция? Типа, как только вызывается 0E, так сразу шлются разные пакеты?
Усе =) Я нашел секвенс - возможно один из секвенсов... он прятался намного выше места где присходит глюк, вот сволач.

Вызываем ф-ю
Using Function [0E] AccID: [DA EB DE AD] MapSync: [7A E9 A6 15] Sync: [B9 6E B6 03] - MonID [C7 D2 00 00]
Len = 68 - 89 00 44 00 00 00 00 00 00 00 00 00 00 C2 C3 D2 C4 D2 00 C5 D2 00 00 C6 D2 00 00 00 C7 D2 00 00 00 00 02 00 03 00 00 00 04 00 00 00 00 00 05 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 07 00 00 00
это если вызвать ее просто - все ок.
Вызываем сначала
Using Function [0E] AccID: [DA EB DE AD] MapSync: [7A E9 A6 15] Sync: [29 FD A0 03] - MonID [E0 D2 00 00]
Len = 34 - 89 00 22 00 00 00 DF D2 00 00 00 E0 D2 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 07 00 00 00

Потом эту
Using Function [0D] AccID: [DA EB DE AD] MapSync: [7A E9 A6 15] Sync: [28 48 AF 03] - MonID [E4 D2 00 00]
Len = 66 - 89 00 42 00 00 00 00 00 DB DC D2 DD DF E0 D2 E1 D2 00 E2 D2 00 00 E3 D2 00 00 00 E4 D2 00 00 00 02 00 03 00 00 00 04 00 00 00 00 00 05 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 00 07 00 00 00

А потом такую же как первая:
Using Function [0E] AccID: [DA EB DE AD] MapSync: [7A E9 A6 15] Sync: [B9 6E B6 03] - MonID [C7 D2 00 00]
Len = 60 - 89 00 3C 00 00 00 00 00 DB C2 C3 D2 C4 D2 00 C5 D2 00 00 C6 D2 00 00 D2 C7 D2 00 00 03 00 00 00 04 00 00 00 00 00 05 00 00 00 00 00 05 00 06 00 00 00 00 00 06 00 00 00 07 00 00 00

Длина другая, содержимое другое.

В архиве программа, ее надо скопировать в каталог куда скопировать
ropp.dll, и модуль Win32 АПИ, что бы работал импорт из дллки, запскаем ее она читает файл console1.txt и создает logи

Похоже на интереференцию 0D и 0E ?

Добавлено: Сб янв 13, 2007 4:32 pm
kLabMouse
DInvalid
Хочещь Маленький Прикол! Каждый следуйщий пакет зависит от предыдущего! так что лучше взять тупой дамп пакетов с клиента, и емуля. и сравнивать их. Иначе никак!

Добавлено: Сб янв 13, 2007 4:36 pm
DInvalid
Да ну? Вот неудача )))
Только вот почему то когда я удалял посланные пакеты выше вот
этого
Using Function [0E] AccID: [DA EB DE AD] MapSync: [7A E9 A6 15] Sync: [B9 6E B6 03] - MonID [C7 D2 00 00]
Len = 60 - 89 00 3C 00 00 00 00 00 DB C2 C3 D2 C4 D2 00 C5 D2 00 00 C6 D2 00 00 D2 C7 D2 00 00 03 00 00 00 04 00 00 00 00 00 05 00 00 00 00 00 05 00 06 00 00 00 00 00 06 00 00 00 07 00 00 00
его длина не менялась? а?

П.С. Значит я вас ввел в заблужение? )))
Фу я нуп )))

Свалю все на Jerry это все он проверял мой пакет на глючность =)))


П.С. Но мы не сдаемся ))) если я беру свой реальный лог, в котором есть глюк, и скармливаю его этой программе, она его воспроизводит )))
Так что воспроизвести глюк с помощью ее можно )))
(типа отмазался)
К тому же,

Добавлено: Сб янв 13, 2007 6:56 pm
japplegame
Нет, пакеты не зависят друг от друга. По содержимому конечно сравнивать не стоит, оно может слегка отличаться в мусорных областях, но длина однозначно должна быть одинаковая.
То что ты нашел - полезная штука. Спасибо, будем рыть в этом направлении.

Добавлено: Сб янв 13, 2007 7:34 pm
japplegame
Джерри провел эксперимент и я его повторил. Эксперимент подтвердил, что похоже DInvalid прав.
Функции 0E и 0D интерферируют.
Сами по себе работают правильно. а вперемежку начинают глючить. Это объясняет все.
Ну чтож место порытия собаки найдено. Дальше осталось найти где пересечение этих функций. А это уже дело техники. Думаю это займет немного времени.
Спасибо всем кто принял участие в этом полезном деле.

Добавлено: Сб янв 13, 2007 7:42 pm
japplegame
Процесс пошел. Одна из функций бьет ключ соседки. Однажды побитая, функция больше вообще не дает правильных значений. Со всеми вытекающими.

Добавлено: Сб янв 13, 2007 7:46 pm
DInvalid
japplegame писал(а):Джерри провел эксперимент и я его повторил. Эксперимент подтвердил, что похоже DInvalid прав.
Функции 0E и 0D интерферируют.
Сами по себе работают правильно. а вперемежку начинают глючить. Это объясняет все.
Ну чтож место порытия собаки найдено. Дальше осталось найти где пересечение этих функций. А это уже дело техники. Думаю это займет немного времени.
Спасибо всем кто принял участие в этом полезном деле.
Пытаюсь вспомнить СИ.

Хм... это ф-я инициализирует массив из 16 слов
word MSTKey1[16], MSTKey2[16];
и вызывается так
MSTInit(MSTKey1, Key);
В качестве агрумента - массив слов длиной 16.


void MSTInit(word *ek, dword *key)
{
byte k[16];
int i;
byte_copy(k ,key[0]);
byte_copy(k+ 4,key[1]);
byte_copy(k+ 8,key[2]);
byte_copy(k+12,key[3]);
for(i=0;i<8;i++) ek = k[i*2]*256 + k[i*2+1];
for(i=0;i<8;i++)
{
ek[i+ 8] = fi(ek, ek[(i+1)%8]);
ek[i+16] = ek[i+8] & 0x1FF;
ek[i+24] = ek[i+8] >> 9;
}
}

Вот тут нет выхода за границы массива? вроде обращаемся как с ловам а не как к байтам, и пишем в память offset ek+i+16 а это уже следуюший массив MSTKey2[16]; ? нет?

ek[i+16] = ek[i+8] & 0x1FF;
ek[i+24] = ek[i+8] >> 9;
Т.е при вызове инита для ф-ии D она запортит MSTKey2[16], а при очередном вызове ф-ии E она не будет инитить его так как
if( MSTInited2 == 0 ) {
MSTInit(MSTKey2, Key);
MSTInited2 = 1;
}

Т.е. если мы вызвали сначала 0E потом 0D то следующий вызов 0E будет... гхм.. глючным...

Это все имхо :crazy:

П.С. Ниуспел %)

Добавлено: Сб янв 13, 2007 8:03 pm
japplegame
DInvalid писал(а):П.С. Ниуспел %)
Гы-гы-гы. Ниуспел :). Но какая разница? Помощь ты оказал весьма серьезную. Му-ха-ха-ха. Победили-таки это дело. Ждите, ща выложу новый ropp.dll лишенный этого постыдного глюка.

Добавлено: Сб янв 13, 2007 8:44 pm
japplegame
Сам алгоритм MISTY оказался верным. Неверная длина ключей. Она должна быть равна не 16-ти словам, а 32. Я закоммитил изменения, но пока Бибиан перекомпилит это добро, пройдет время. Но зачем нам ждать Бибиана? Вот новая версия ropp.dll тестируйте на здоровье.

Добавлено: Сб янв 13, 2007 9:46 pm
kLabMouse
ББ. Тупой баг. Мать его.
Надеюсь ето пока все. Далее нужно будет тестить те что ещё на асме. Я их по одному буду загружать в СВНку.

Добавлено: Вс янв 14, 2007 1:08 pm
Jerry
пирожок намути апдейт релиза

Добавлено: Вс янв 14, 2007 10:49 pm
japplegame
Закрывайте нах тему, раз уж победили эту гадость.

Добавлено: Пн янв 15, 2007 8:36 am
kLabMouse
japplegame
Дявай пока оставим. Ибо там ещё остались те сорсы что в папочке драфт. Их тоже нужно замутить и протестить.
Правда ети алогоритмы оказывается оч редкие, так-что прийдётся чистить их ибо выдраны ХЗ откуда.

Добавлено: Пн янв 15, 2007 1:01 pm
japplegame
kLabMouse писал(а):japplegame
Дявай пока оставим. Ибо там ещё остались те сорсы что в папочке драфт. Их тоже нужно замутить и протестить.
Правда ети алогоритмы оказывается оч редкие, так-что прийдётся чистить их ибо выдраны ХЗ откуда.
Не вижу связи между проблемами синхронизации и твоими исходниками. Да и не понимаю зачем нужна для этого тема на форуме?

Добавлено: Пн янв 15, 2007 4:00 pm
kLabMouse
japplegame
Тему можно снести. А те сорсы нужно привети в порядко. Ибо времени совсем ниначто нет.