Перейти к содержанию
Авторизация  
Gamaz

Баг с CREST фото картинок клана Крит

Рекомендуемые сообщения

Недавно увидил как зиливают по 1к картинок в папку CREST и людей ничанаиет критить в гиране

как удаляешь папку с 0 создаешь  всe ок потом опять приходит читер и снова заливает просит шмот и скилы

есть вариант без исходов фиксануть как то?

ставил папке права READ  а она снова создается удалял также не помогает автоматически появляется

можно как то в линуксе заблочить создание этой папки или нет

сборка  PWSOFT 2018

не убирать же создания клана совсем с сервера

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

либо как-то запретить залив в папку CREST как временное решение у меня Дэбиан8  стоит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

chmod 444/111 либо писать скрипт для клана который запретит менять логотип для клана в течении 30 минут после последнего раза

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а кто сталкивался с подобным ?

я вот думаю поставить флаг  i на папку атрибут

или как-то ограничить залив с 1 IP  не чаще чем раз в час

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Забань запись в папку со значками да и все. Без исходов ниче ты там не сделаешь. Кланам кому надо вручную выстави картинки в эту папку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

страно что все кто смотрит на него улетают в криты а он не улетает сам

я думал может есть какие-то багнутые картинки от которых криты идут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Gamaz сказал:

страно что все кто смотрит на него улетают в криты а он не улетает сам

я думал может есть какие-то багнутые картинки от которых криты идут

Конечно есть, гугли баг "критуем посонов"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот такой кстати крит всегда

 

CreateTexture failed(D3DERR_INVALIDCALL).
Texture (Param:USize=16,VSize=1,NumMips=1,FirstMip=0,D3DFormat=827611204,Texture=191130f8

History: FD3DTexture::Cache <- FD3DRenderInterface::CacheTexture <- FD3DRenderInterface::HandleCombinedMaterial <- FD3DRenderInterface::SetSimpleMaterial <- FD3DRenderInterface::SetMaterial <- FCanvasUtil::Flush <- FCanvasUtil::BeginPrimitive <- FCanvasUtil::DrawTile <- UCanvas::DrawNormalText <- UCanvas::DrawTextToCanvas <- FDynamicActor::Render <- Actor <- TranslucentRendering <- RenderLevel <- FLevelSceneNode::Render <- FPlayerSceneNode::Render <- UGameEngine::Draw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну очевидно же, используют баг "критуем посонов"

(Param:USize=16,VSize=1

На сервере фикс элементарный просто обработчик поправить пакета на установку картинки.

Изменено пользователем Rogue

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 минут назад, Gamaz сказал:

да. Тебе в принципе надо просто проверить байты на конкретных позициях которые приехали, чтобы картинка всегда была 16 на 12, а если данные не такие то скипать такую картинку.

Изменено пользователем Rogue

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну исходы нужны же

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну скилловые ребята могут и на компиле сделать, через декомпил класса.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Декомпилим "RequestSetPledgeCrest", в вашем случае он должен быть гдето в net\sf\l2j\gameserver\network\clientpackets. Либо берем из шареных исходников, подозреваю что врядли будут какието бркейченжи. Вопрос: Как декомпилить? Ответ: гугл с запросом "java decompiller" вам поможет

2. В пакете RequestSetPledgeCrest есть два поля, длинна и собственно говоря байтовый массив с картинкой. Скорее всего все проверки на "валидность" там ограничиваються только проверкой длинны. (что-то вроде if (length == 0 || length >256))

3. В декомпилированом\взятом из исходников классе можно добавить метод проверки на валидность, какойнибудь bool isValidCrestData(byte[] array)

4. в теле метода разбираем полученый байтовый массив на структуру DDS

//buf - обычный байтбуффер из array
int magic = buf.getInt();
int size = buf.getInt();
int flags = buf.getInt();
int height = buf.getInt();
int width = buf.getInt();
int pitch = buf.getInt();
int depth = buf.getInt();
int mipMapCount = buf.getInt();
int alphaBitDepth = buf.getInt();
int reserved1 = buf.getInt();
int surface = buf.getInt();
int colorSpaceLowValue = buf.getInt();
int colorSpaceHighValue = buf.getInt();
int destBltColorSpaceLowValue = buf.getInt();
int destBltColorSpaceHighValue = buf.getInt();
int srcOverlayColorSpaceLowValue = buf.getInt();
int srcOverlayColorSpaceHighValue = buf.getInt();
int srcBltColorSpaceLowValue = buf.getInt();
int srcBltColorSpaceHighValue = buf.getInt();
int pfSize = buf.getInt();
int pfFlags = buf.getInt();
int pfFourCC = buf.getInt();
int pfRGBBitCount = buf.getInt();
int pfRBitMask = buf.getInt();
int pfGBitMask = buf.getInt();
int pfBBitMask = buf.getInt();
int pfABitMask = buf.getInt();
int ddsCaps1 = buf.getInt();
int ddsCaps2 = buf.getInt();
int ddsCaps3 = buf.getInt();
int ddsCaps4 = buf.getInt();
int textureStage = buf.getInt();

PS. Имена полей условные, структуру взял из сборки которая попалась под руку.

5. Далее проверяяем на валидность

int size = 256;

if (magic != 0x20534444) {
  return false;
}
if (size != 0x7C) {
  return false;
}
if (flags != 0x81007) {
  return false;
}
if (height % 4 != 0 || height > 64 || height < 4) {
  return false;
}
if (width % 4 != 0 || width > 64 || width < 4) {
  return false;
}
if (pfFlags != 0x04 || pfFourCC != 0x31545844 || pfSize != 0x20) {
  return false;
}
if (mipMapCount != 0x00) {
  return false;
}
if (pitch != (size - 0x80)) {
  return false;
}
if (depth != 0x00) {
  return false;
}
if (ddsCaps1 != 0x00) {
  return false;
}
if (ddsCaps2 != 0x00) {
  return false;
}
if (ddsCaps3 != 0x00) {
  return false;
}
if (ddsCaps4 != 0x00) {
  return false;
}
return true

PS. Код для примера и понимания сути, фил фри пилить любые удобные обвертки итд

6. Соотвественно после проверок на длинну ( в пакете) вызываем полученый метод isValidCrestData

7. Компилим класс javac'ом обратно, передав в класспас нужные либы ( подозреваю что скопиленого ядра и какогонибудь mysql адаптера будет достаточно), тут уже нужно смотреть по зависимостям в пакете. 

Изменено пользователем lvlkoo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

учитывая что isValidCrestData(ибо я его и писал) есть только у меня, автору это ни о чем не скажет.....

Ты так выражаешься и описываешь, якобы сам это делал. Стыд и срам, а не сообщение.

Изменено пользователем Deazer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

смысл вы ему объясняете когда ему нужно готовое решение, что бы за него кто то сделал))

Изменено пользователем Infinitys

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хех, я думал эту уязвимость уже все давно закрыли - ибо в свое время ее активно юзали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
56 минут назад, Deazer сказал:

учитывая что isValidCrestData(ибо я его и писал) есть только у меня, автору это ни о чем не скажет.....

Ты так выражаешься и описываешь, якобы сам это делал. Стыд и срам, а не сообщение.

Слушай, к чему этот ликбез? Там вполне понятно написано

1 час назад, lvlkoo сказал:

структуру взял из сборки которая попалась под руку.

С учётом того, что твой декомпил пошел по рукам ещё до того когда я декомпил и правил купленное у тебя ядро - я абсолютно не исключаю того факта что это твой код, написанный тобой, "позаимствованный" у тебя. К тому же в твоей реализации это смотрится намного лучше (вот прям специально посмотрел). 

Я готов тебе постоянно повторять, что ты ахуенен как разработчик, но максимально хуевен в альтруизме.

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

 

Я нигде не обмолвился словом что это мой код, твой код, чей-то другой код, это пост попытки помощи человеку. Пожалуйста, задумайся наконец-то над этим. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати выше приведенный код корректно проверит только клановые значки, но не значки альянса и тем более не значки на клановый щит (есть ли они в IL я не помню)

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Gaikotsu сказал:

Кстати выше приведенный код корректно проверит только клановые значки, но не значки альянса

С уважением скину " код господина дизера" для проверки альянсовых значков. Но он опять оборет всех, разплескивая свою желчь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, lvlkoo сказал:

Слушай, к чему этот ликбез? Там вполне понятно написано

С учётом того, что твой декомпил пошел по рукам ещё до того когда я декомпил и правил купленное у тебя ядро - я абсолютно не исключаю того факта что это твой код, написанный тобой, "позаимствованный" у тебя. К тому же в твоей реализации это смотрится намного лучше (вот прям специально посмотрел). 

Я готов тебе постоянно повторять, что ты ахуенен как разработчик, но максимально хуевен в альтруизме.

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

 

Я нигде не обмолвился словом что это мой код, твой код, чей-то другой код, это пост попытки помощи человеку. Пожалуйста, задумайся наконец-то над этим. 

Пиши код сам! Решайте поступившие тебе задачи самостоятельно.

С какой радости я должен вообще заниматься альтруизмом, я что Мать Тереза ? Или Махатма Ганди ? Нет, я бы вообще скосил всех тупых, убогих и больных. И если у кого есть мой декомил 2018 года, пусть качают и смотрят самостоятельно. Я ни тебе и ни кому либо еще не разрешал делиться своим кодом или его частями, а тем более публично.  Тебе ясен ликбез или нет ?

И Вот мое решение, сидите и переписывайте. Нормальное, с комментариями и так далее 

 

735f60602ff13c4545f89bf3d137594c.png

 

PS Весь ТВОЙ альтруизм заключается в том что бы просто скопипастить чужой код и высрать его на форуме, что бы очередной даун у тебя заказал "фиксы" которые ты очередной раз спи*шь и продашь чужой труд. Ты не альтруист, ты клоп.

Изменено пользователем Deazer
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
32 минуты назад, Deazer сказал:

 

 я что Мать Тереза ? Или Махатма Ганди ? Нет, я бы вообще скосил всех тупых, убогих и больных.

Это эмоции или ты на полном серьёзе ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, ammy сказал:

Это эмоции или ты на полном серьёзе ? 

Ты уметь в флейм нет ? Я делал громадное кол-во публикаций эксклюзивных абсолютно. Это вроде очевидно. Я постоянно анпакаю патчи, я первый шарил актуальные ПТСки, я делалю кучу гайдов и ничего за это никогда не просил. Нет ни кнопок доната, ни просьб о финансовых поддержках.

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

По поводу больных, убогих и тупых - флейм нет ? Слышал про такое нет ?

И еще раз повторюсь, ничего не имею против тупых или кривых или собак или любые карбоновые виды жизни.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, Deazer сказал:

Ты уметь в флейм нет ? Я делал громадное кол-во публикаций эксклюзивных абсолютно. Это вроде очевидно. Я постоянно анпакаю патчи, я первый шарил актуальные ПТСки, я делалю кучу гайдов и ничего за это никогда не просил. Нет ни кнопок доната, ни просьб о финансовых поддержках.

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

По поводу больных, убогих и тупых - флейм нет ? Слышал про такое нет ?

И еще раз повторюсь, ничего не имею против тупых или кривых или собак или любые карбоновые виды жизни.

Я уже старый ))) Надеюсь будет мир во всём мире, а тебя понять можно так как это твой код, твоя структура и твоё потраченное время.

Я думаю что ни кто не форуме не претендует на твоё творение, человек просто на просто любыми путями решил помочь (не согласовал с тобой) что выложит твой код а именно декомпил так как он давно уже на руках, так же кстати и 09.20 года на руках классик + ИЛ на зарубежном форуме, могу ошибаться с датой ревизии (+ как заверят пират сборка отвязана). 

Надеюсь что все на этом форуме будут соблюдать самообладание.

p.s всем бобра :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это лишняя инфа, код обфусцирован. Собрать его обратно даже если и получиться, работать с ним будет невозможно. Так что тебя ввели в заблуждение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...