Прошу заметить что подобные баги я выкладываю краине редко тк неизвестно к каким еще последствиям это может привести. На данный момент мне удалось наити лишь то что гм может атаковать игроков.
На поиск данного бага меня натолкнуло то что Rudakopy Дарка(за что громное спасибо) до фени на многие ограничения. Зайдя гмским персонажем через бот я смог убить обычного игрока(что нонсенс для гма).
На самом деле все просто:
Есть пакет от сервера
EnterWorldResult этот пакет отвечает за то, как сервер прореагировал на вашу попытку входа: вот пример
Код:
06 00 01 02 00 00
06 00 - Длинна
01 02 - Тип
это ответ сервера на вход обычного игрока.
однако у гма он:
Код:
06 00 01 02 00 02
06 00 - Длинна
01 02 - Тип
02 - Нужный байт.
вот мы и нашли тот баит который отвечает к какому классу мы относимся.
Я попробовал поставить гму '
00' баит - сработало - ник стал зеленым но гм чар перестал реагировать на команды и сообщения в чат. Тогда я поставил '
04'(число взял рандомно из предположения того что баит отвечает за греид персонажа) и о чудо ник гм чара стал зеленым(для клиента(со всеми вытекающими)) и смог атаковать игроков и при этом сохранил возможность писать в чат обьвлений и вводить комманды.
Притом такая возможность появилась даже у обычных персонажей но на те команды которые я пробовал мне выдавал error(authority) что значило что у меня нет прав (вот тут можно покопать в целях наити команду без проверки).
Вообщем вот скрипт для PPC саура язык FS
Код:
var
ID, le : integer;
Hpto : string;
Procedure OnCreate;
begin
Hpto := HStr('06 00 01 02 00 04');
end;
BEGIN
ID := gInt(_gBuff,3,2);
le := length(_gBuff);
if le < 4 then exit;
if (_gFromServ) and (ID = $0201) then begin
gBlockPacket;
gSys.SendC(Hpto);
writelogln('пакет на вход изменен');
end;
END.
Имеется введу греид(ГМ , обычный игрок и тд). Потенциал у бага очень большой.