Прошу заметить что подобные баги я выкладываю краине редко тк неизвестно к каким еще последствиям это может привести. На данный момент мне удалось наити лишь то что гм может атаковать игроков.
На поиск данного бага меня натолкнуло то что Rudakopy Дарка(за что громное спасибо) до фени на многие ограничения. Зайдя гмским персонажем через бот я смог убить обычного игрока(что нонсенс для гма).
На самом деле все просто:
Есть пакет от сервера EnterWorldResult этот пакет отвечает за то, как сервер прореагировал на вашу попытку входа: вот пример
Код:
06 00 01 02 00 00
06 00 - Длинна
01 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.
Имеется введу греид(ГМ , обычный игрок и тд). Потенциал у бага очень большой.
Последний раз редактировалось Big Bad Sensey; 13.10.2012 в 11:18.
Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook
История России — борьба невежества с несправедливостью. (c) МихМих
Это тест скрипта в скрипт тестере - вроде все норм - как заряжать скрипты именно в проксик описанно в моем 1 гаиде. СКРИПТ ТЕСТЕР ПРЕДНАЗНАЧЕН ТОЛЬКО ДЛЯ ТЕСТА СКРИПТОВ НА СИНТАКСИС.
Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook
История России — борьба невежества с несправедливостью. (c) МихМих
Немного не понял вот эту часть: "Притом такая возможность появилась даже у обычных персонажей но на те команды которые я пробовал мне выдавал error(authority) что значило что у меня нет прав."
Когда я юзаю этот скрипт, у меня на команды выдаёт тоже error(authority). Что значит "обычных персонажей", и как создать "необычного"? Или нужно создать гм-акк сначала, sql-методом, как было описано в другой теме?
Кстати в EnterWorldResult всё равно пишет 06 00 01 02 00 00, даже со скриптом. Это нормально?
Последний раз редактировалось Big Bad Sensey; 13.10.2012 в 01:13.
Потеряна актуальность/работоспособность темы в связи с течением времени.
Работать может только на самых забугорных фришках, и то не факт.
Перенесено в Архив