Прака сервера

Сообщение St.Elena » 22 ноя 2007, 14:10

Не правленный исходный Хэт
http://games.alkar.net/games/allods2/files/1.zip

Правленный файл сервера
http://games.alkar.net/games/allods2/files/a2server.exe

1. Поправленна бесплатная покупка в лавке.

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

2.1. На данном патче как-то обойдена функция проверки версии клиента. (ниже ссылка на взломанный патч)
http://games.alkar.net/games/allods2/files/hacked.zip

2.2. Существует какой-то способ смены алгоритма проверки корректности патча. каков он я не знаю - но раньше с выходом нового варианта патча - проблем не было - просто как-то запрещали любые друние версии кроме заданной.

2.3. Можно-ли произввести привязку патча по новой к файлу сервера - чтобы хотя-бы временно уйти от использования патча со взломанным обзором

3. Прошу разбанить на сервере IP 212,3,106,2 - есть там счас чел нормальный - мне нужно потестить варианты возможного ксера. (мы от этого ничего не теряем - как начнется не адекватное отношение - забанить всегда сможем - а на ксер кое что попроверять требуется, чел пока идет на встречу)
3. Мы както - так и не решили вопрос с доступом к базе аккаунтов на чтение - для контроля ксера - и возможности определения - ксерят как-то или нет (для моего IP only)

З.Ы. Карты для установки после вайпа правлю.
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Автор темы
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 11:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

Сообщение St.Elena » 22 ноя 2007, 14:19

Различия между правленным и не правленным файлом сервера

Изображение
Изображение
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Автор темы
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 11:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

Сообщение Alamar » 22 ноя 2007, 17:14

1) Адрес разбанил.
2) Я правильно понимаю, что под "привязкой патча" понимается изменение версии клиента и сервера, дабы запретить упомянутому тобой взломанному патчу доступ на сервер?
3) Касательно фиксов - крайне желательно кроме hex'а приводить еще и ассемблерный код, в идеале с комментариями :)
4) Доступ к аккаунтам - будет или завтра, или на следующей неделе.
Москалі нам не друзі, тому що друзі на дорозі не валяються.
Аватара пользователя
Alamar
Злое сонное тело
Злое сонное тело
 
Сообщения: 2358
Зарегистрирован:
26 ноя 2001, 02:00
Откуда: /dev/urandom
Has thanked: 3 times
Have thanks: 87 times
Играю в: EVE Online

Сообщение St.Elena » 23 ноя 2007, 08:34

DDR твое сообщение удалила.

Причина:
1. Листинг правленого желателен для того что-бы видеть как и что написанно, для возможностьи пробежать глазами - посмотреть что и как правленно, для проверки возможных ошибок в том числе. (ну какая система безопастности и все тут.
2. Это значительно облегчает проверку и непосредственно правку.
3. Ты наверное уже знаеш судьбу UO Alkar - мне не хочется чтобы наш проэкт бросил единственный человек - который нам еще помогает.

Лап, еще раз спасибо за то что ты делаеш, только благодаря этому - у нас есть возможность править важные для Хэта вещи.. но пойми пожалуйста и человека - который помогает нам, как и ты , только из собственных побуждений...

Здесь нет подозрений на то что ты можеш причинить вред серверу.

Если он попросил листинг, и это облегчит, не нужную непосредственно ему работу - не трудно это сделать..

Прим: сайт на котором был выложен листинг - лежит... у меня к сожелению копии нет.

Alamar писал(а):1) Адрес разбанил.

Сенкс!
Alamar писал(а):2) Я правильно понимаю, что под "привязкой патча" понимается изменение версии клиента и сервера, дабы запретить упомянутому тобой взломанному патчу доступ на сервер?

Да - абсолютно правильно, время от времени изменяя алгоритм привязки - мы снизим возможность использования широким кругом игроков взлломанных патчей (как правило на обзор)
Потому как на взлом системы проверки корректоности используемого патча - требуется время. Потом время на распостранение. А использование взломаного обзора - легко замечается другими игроками и Хранителями.
Alamar писал(а):4) Доступ к аккаунтам - будет или завтра, или на следующей неделе.

Сенкс.
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Автор темы
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 11:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

Сообщение Alamar » 23 ноя 2007, 11:42

Зря удаляла, мне например интересно было бы почитать :)

Дело не в каких-либо подозрениях, просто если я "не думая" внесу вышеприведенные изменения, работать ничего не будет ;)
Не забывайте, что на сервер наложены и другие патчи, поэтому, например, адреса в call и т.д. мне c высокой долей вероятности придется корректировать.
Москалі нам не друзі, тому що друзі на дорозі не валяються.
Аватара пользователя
Alamar
Злое сонное тело
Злое сонное тело
 
Сообщения: 2358
Зарегистрирован:
26 ноя 2001, 02:00
Откуда: /dev/urandom
Has thanked: 3 times
Have thanks: 87 times
Играю в: EVE Online

Сообщение Дичь » 23 ноя 2007, 15:52

мне c высокой долей вероятности придется корректировать.


думаю наврятли :wink:
Аватара пользователя
Дичь
Новичок
Новичок
 
Сообщения: 100
Зарегистрирован:
25 авг 2006, 22:46
Has thanked: 0 time
Have thanks: 0 time

Сообщение St.Elena » 24 ноя 2007, 06:10

ddr (02:27:19 24/11/2007)
только пусть делает именно так как я делал, чуть выше или ниже неканает, там мало неиспользуемого места


Код: Выделить всё
 
     Перемещение вещей с прилавка
Категория: Аллоды 2
Автор: Vladimir Chebotarev aka ex-lend

При перетаскивании вещи клиент посылает серверу пакет типа: 22 XX XX YY ZZ QQ QQ WW WW RR RR, где:
XX XX - id юнита
YY - место, откуда (1 - тело, 2 - инвентарь, 4 - прилавок, 5-8 - полки)
ZZ - место, куда
QQ QQ - номер слота, откуда
WW WW - номер слота, куда
RR RR - количество
 
Здесь надо заметить, что сервер не делает проверки при перетаскивании с прилавка в инвентарь, это запрещено только с клиентской стороны. Таким образом, мы можем перетаскивать вещи с прилавка бесплатно и без лишних усилий.
Посмотрим на код, генерирующий пакет перетаскивания вещи (allods2.exe): .text:0041C087                 mov     eax, [ebp+var_8]
.text:0041C08A                 mov     ecx, [eax+138h]
.text:0041C090                 mov     edx, [ebp+var_4]
.text:0041C093                 mov     ax, [ecx+4]
.text:0041C097                 mov     [edx+0Ah], ax
.text:0041C09B                 mov     ecx, [ebp+var_4]
.text:0041C09E                 mov     dx, [ebp+arg_4]
.text:0041C0A2                 mov     [ecx+0Eh], dx
.text:0041C0A6                 mov     eax, [ebp+var_4]
.text:0041C0A9                 mov     cl, [ebp+arg_0]
.text:0041C0AC                 mov     [eax+0Ch], cl   ; место, откуда
.text:0041C0AF                 mov     edx, [ebp+var_4]
.text:0041C0B2                 mov     ax, [ebp+arg_C]
.text:0041C0B6                 mov     [edx+10h], ax
.text:0041C0BA                 mov     ecx, [ebp+var_4]
.text:0041C0BD                 mov     dl, [ebp+arg_8]
.text:0041C0C0                 mov     [ecx+0Dh], dl   ; место, куда
.text:0041C0C3                 mov     eax, [ebp+var_4]
.text:0041C0C6                 mov     cx, [ebp+arg_10]
.text:0041C0CA                 mov     [eax+12h], cx
 
Нетрудно модифицировать его таким образом, например, чтобы при перемещении с прилавка (4) куда-бы то ни было пункт назначения был установлен в инвентарь (2).

Для защиты от этой ошибки необходимо ввести дополнительную проверку на сервере. Рассмотрим код обработки пакета 22 (a2server.exe): .text:00505A85 loc_505A85:                             ; CODE XREF: sub_504A96+F95
.text:00505A85                 mov     edx, [ebp+var_5C]
.text:00505A88                 xor     eax, eax
.text:00505A8A                 mov     al, [edx+0Ch]   ; место - откуда
.text:00505A8D                 cmp     eax, 4      ; прилавок?
.text:00505A90                 jnz     short loc_505AD8
.text:00505A92                 mov     ecx, [ebp+var_54]
.text:00505A95                 mov     edx, [ecx+10h]
.text:00505A98                 push    edx
.text:00505A99                 mov     ecx, [ebp+var_C38]
.text:00505A9F                 call    sub_502C50
.text:00505AA4                 mov     [ebp+var_6C], eax
.text:00505AA7                 cmp     [ebp+var_6C], 0
.text:00505AAB                 jnz     short loc_505AB2
.text:00505AAD                 jmp     loc_50864E
.text:00505AB2 ; ---------------------------------------------------------------------------
.text:00505AB2
.text:00505AB2 loc_505AB2:                             ; CODE XREF: sub_504A96+1015textj
.text:00505AB2                 mov     eax, [ebp+var_5C]
.text:00505AB5                 xor     ecx, ecx
.text:00505AB7                 mov     cx, [eax+12h]
.text:00505ABB                 push    ecx
.text:00505ABC                 mov     edx, [ebp+var_5C]
.text:00505ABF                 movsx   eax, word ptr [edx+0Eh]   ; номер слота - откуда
.text:00505AC3                 push    eax
.text:00505AC4                 mov     ecx, [ebp+var_54]
.text:00505AC7                 push    ecx
.text:00505AC8                 mov     ecx, [ebp+var_6C]
.text:00505ACB                 call    sub_5446C7   ; вытащить вещи с прилавка в eax
.text:00505AD0                 mov     [ebp+var_60], eax
.text:00505AD3                 jmp     loc_505BDF
 
Функция по адресу 5446C7 перемещает вещь с заданного слота прилавка во временный объект и возвращает его, а далее этот объект независимо от происхождения может быть перемещен в любой пункт назначения.

Чтобы найти нужную нам вещь переберем все вещи на прилавке. Далее посмотрим ее происхождение. Если вещь магазинная, вместо объекта с вещью надо вернуть 0 и не выполнять никакого перемещения. Этот код надо вставить вместо вызова sub_5446C7:       push   ebp
      mov   ebp, esp
      push   ecx

      mov   [ebp-0x04], ecx
      
      mov   eax, [ebp-0x04]
      mov   ecx, [eax+6Ch]
      mov   eax, [ebp+0x08]
      push   eax
      call   0x547468   ; получим список вещей прилавка

      lea   ecx, [eax + 0x078]
      mov   eax, [ecx + 4]    ; число вещей на прилавке

      test   eax, eax
      jz   ret0

      mov   edx, [eax + 8]
      mov   eax, [eax]

      xor   ecx, ecx

start:
      test   edx, edx
      jz   ret0
      
      cmp   ecx, [ebp + 0x0c] ; сравниваем индекс вещи с номером слота
      jnz   next
      
      cmp   dword ptr [edx + 0x14], 0 ; ключевой момент
      jz   ret0    ; магазинная вещь, выходим без перетаскивания

      jmp   done


next:
      add   ecx, 1   ; перейдем к следующему элементу связного списка

      test   eax, eax
      jz   ret0

      mov   edx, [eax + 8]
      mov   eax, [eax]
      jmp   start

ret0:
      xor   eax, eax

      mov   esp, ebp
      pop   ebp
      retn   0Ch

done:
      mov   eax, [ebp+0x010]
      push   eax
      mov   ecx, [ebp+0x0C]
      push   ecx
      mov   edx, [ebp+0x08]
      push   edx
      mov   eax, [ebp-0x04]
      mov   ecx, [eax+6Ch]
      call   0x547C5A   ; вызовем извлечение вещи из инвентаря
               ; это все что было внутри
               ; старой sub_5446C7
      mov   esp, ebp
      pop   ebp
      retn   0Ch
 
 
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Автор темы
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 11:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

Сообщение Alamar » 26 ноя 2007, 15:09

Дичь писал(а):
мне c высокой долей вероятности придется корректировать.


думаю наврятли :wink:
Неправильно думаешь.
В частности, место по адресу 207450 в используемом у нас сервере уже занято.


ЗЫ: Ближе к концу недели или на выходных постараюсь добраться до правки сервера, пока со свободным временем не очень.
Москалі нам не друзі, тому що друзі на дорозі не валяються.
Аватара пользователя
Alamar
Злое сонное тело
Злое сонное тело
 
Сообщения: 2358
Зарегистрирован:
26 ноя 2001, 02:00
Откуда: /dev/urandom
Has thanked: 3 times
Have thanks: 87 times
Играю в: EVE Online

Сообщение Дичь » 26 ноя 2007, 17:00

там 200h свободно где-то, или новый сегмент делать
Аватара пользователя
Дичь
Новичок
Новичок
 
Сообщения: 100
Зарегистрирован:
25 авг 2006, 22:46
Has thanked: 0 time
Have thanks: 0 time

Сообщение Alamar » 26 ноя 2007, 17:20

Дичь писал(а):там 200h свободно где-то, или новый сегмент делать
В оригинальном сервере - может и свободно, не смотрел.
В сервере используемом на hat.alkar.net - по-моему, все уже забито до нас :)
Скорее всего придется новый сегмент добавлять.
Москалі нам не друзі, тому що друзі на дорозі не валяються.
Аватара пользователя
Alamar
Злое сонное тело
Злое сонное тело
 
Сообщения: 2358
Зарегистрирован:
26 ноя 2001, 02:00
Откуда: /dev/urandom
Has thanked: 3 times
Have thanks: 87 times
Играю в: EVE Online

Сообщение St.Elena » 29 ноя 2007, 20:31

Прошли некоторые тесты ксера, как таковой ксер до сих пор существует.
1. Так как никто не закрывал - до сих пор есть скер с модема (заход двумя и более персами.
2. Ксер через срывы карт. (после внесения некоторых изменений в записи данных, Аламаром - ситуация стала в принципе очень хорошей.)
но варианты есть
Оба как принято со слетом

2Ксер....2 чела, патч тотже...один Скидывает шмотку под другого, тот берет..потом оба заходят в лавку....и выходят..1. заходит..начинает свитки туда сюда....2-й заходит выходит с лавки...слет..Вероятность такого ксреа 30% где-то...


через пачт1.10б.....Через лавку.....Заходят 2 человека на карту, тот что покупает заходит и выходит..тот что продает..заходи - выходит, заходит - продает..... Продажа осуществялеться так:1 баночка хилки маленькая, + Шмотка....... потом продает...второй заходит, 1-й выходит...2-й покупает..1-й заходит, 2-й начинае свитки туда сюда...с лавки на строку покупки..и так обратно....Далее..След..потом у обоих остоеться шмотка....Вероятность такого ксера 1 к 3 тоесть проц70% что отксериться...

Раньше было почти 100 процентов.
Есть идея, поставить таймер на вход в лавку.. после нажатия на вход перс входит толкьо через 5 сек.


В принципе слеты мы счас отслеживаем хорошо, возможность проверки и сравнения - добавления шмота на Хэте тоже теперь есть...
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Автор темы
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 11:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

Сообщение St.Elena » 06 дек 2007, 19:07

Аламар, Солнце - есть результаты ?
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Автор темы
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 11:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

Сообщение Дичь » 14 дек 2007, 17:18

как успехи, здрасьте!
Аватара пользователя
Дичь
Новичок
Новичок
 
Сообщения: 100
Зарегистрирован:
25 авг 2006, 22:46
Has thanked: 0 time
Have thanks: 0 time

Сообщение Alamar » 18 дек 2007, 16:11

Времени пока нет, результатов соответственно тоже.
Москалі нам не друзі, тому що друзі на дорозі не валяються.
Аватара пользователя
Alamar
Злое сонное тело
Злое сонное тело
 
Сообщения: 2358
Зарегистрирован:
26 ноя 2001, 02:00
Откуда: /dev/urandom
Has thanked: 3 times
Have thanks: 87 times
Играю в: EVE Online

Сообщение St.Elena » 18 дек 2007, 23:45

Ждем
Вы не можете справиться с вирусами ? Добро пожаловать на Virusinfo.info
Аватара пользователя
St.Elena
Местный
Местный
 
Автор темы
Сообщения: 1228
Зарегистрирован:
02 дек 2003, 11:34
Откуда: Novosibirsk
Has thanked: 0 time
Have thanks: 0 time

След.

Вернуться в Закрытый форум Главных Хранителей

Кто сейчас на конференции

Посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (находятся на конференции)
Этот раздел просматривают: нет зарегистрированных пользователей и гости: 1