Functor Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 Вчера ко мне обратились с просьбой пофиксить баг. Сказали, что этот баг присутствует на многих серверах. Если вытянуть чат с панельки чатов и выйти с игры, то при следующей попытке зайти на сервер получаем падение клиента. Изучив ситуацию в отладчике я нашел виновника. И решил поделится фиксом с комьюнити. В исходнике eAmod-a есть такие строки: // Security Systemif( pc_readaccountreg(sd,"#SECURITYCODE") > 0 ){clif_displaymessage(sd->fd, "Item Security System ENABLE : Use @security for more options.");sd->state.secure_items = 1;}elseclif_displaymessage(sd->fd, "Item Security System DISABLE : Use @security for more options."); По сочетанию символов " :" клиент определяет ник в сообщении. В данном случае он считает "Item Security System DISABLE" и "Item Security System ENABLE" за ники. При копировании таких больших ников в стековый буфер происходит порча стековых данных. Что бы такого не происходило, нужно заменить приведенный выше участок кода на: // Security Systemif( pc_readaccountreg(sd,"#SECURITYCODE") > 0 ){clif_displaymessage(sd->fd, "Item Security System ENABLE: Use @security for more options.");sd->state.secure_items = 1;}elseclif_displaymessage(sd->fd, "Item Security System DISABLE: Use @security for more options."); Теперь клиент не будет находить ник в этих сообщениях. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 Это только с еамодом такое? Ссылка на комментарий Поделиться на другие сайты Поделиться
ph1047 Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 (изменено) получается что если я напишу@me AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA : я использую переполнение буфера как начальникто это выполнится?плиз можешь выполнить это и если упадет фулдамп скинуть?P.S. лучше так@me AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA : using buffer overflow like a boss Изменено 20 августа, 2013 пользователем ph1047 Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 Странно, но у меня клиент не падает. Ссылка на комментарий Поделиться на другие сайты Поделиться
ph1047 Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 Странно, но у меня клиент не падает.попробуй плиз как я написал. Я бы сам попробовал но у меня ни клиента ни сервера уже нет давно Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 Странно, но у меня клиент не падает. попробуй плиз как я написал. Я бы сам попробовал но у меня ни клиента ни сервера уже нет давно Так правильно? Ссылка на комментарий Поделиться на другие сайты Поделиться
ph1047 Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 @me AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA : using buffer overflow like a bossдвоеточие и текст тоже ввел? аа он сам подставил двоеточие(( Ссылка на комментарий Поделиться на другие сайты Поделиться
Functor Опубликовано 20 августа, 2013 Автор Жалоба Поделиться Опубликовано 20 августа, 2013 Это только с еамодом такое?Я не замечал сообщений такого типа в дефолтных эмулях.И не факт, что это единственное такое сообщение в eAmod-e. Лень смотреть. Но если кто-то найдет, то пофиксить не составит труда.Странно, но у меня клиент не падает.Видимо для 2010-07-30aRagexeRE не актуально. Я изучал падение на 2012-04-10aRagexeRE.аа он сам подставил двоеточие((Да, там получится ник из двух байт. Ссылка на комментарий Поделиться на другие сайты Поделиться
ph1047 Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 Это только с еамодом такое?Я не замечал сообщений такого типа в дефолтных эмулях.И не факт, что это единственное такое сообщение в eAmod-e. Лень смотреть. Но если кто-то найдет, то пофиксить не составит труда.Странно, но у меня клиент не падает.Видимо для 2010-07-30aRagexeRE не актуально. Я изучал падение на 2012-04-10aRagexeRE.аа он сам подставил двоеточие((Да, там получится ник из двух байт.можешь как будет время сделать фулдамп при падении от вышеуказанной проблемы? просто интересно что можно из этого сделатьхотя можно и минидамп, если инет не позволяет Ссылка на комментарий Поделиться на другие сайты Поделиться
Functor Опубликовано 20 августа, 2013 Автор Жалоба Поделиться Опубликовано 20 августа, 2013 Фулл дамп http://yadi.sk/d/zg5D-VJJ87fLY Ссылка на комментарий Поделиться на другие сайты Поделиться
ph1047 Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 Ссылка на комментарий Поделиться на другие сайты Поделиться
ph1047 Опубликовано 20 августа, 2013 Жалоба Поделиться Опубликовано 20 августа, 2013 туда траповый фрейм не попал(( ладно, сам как нить попробую Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения