L2CrashSender - полуавтоматические дампы крашей от игроков

Projack

Чиловый парень
VIP
Участник Новогоднего Фонда 2024
Победитель в номинации 2024
Участник Новогоднего Фонда 2023
Победитель в номинации 2023
Победитель в номинации 2022
Стальной Визионер
Куратор Данных
Сообщения
732
Розыгрыши
0
Решения
4
Репутация
1 293
Реакции
1 592
Баллы
1 868
По умолчанию клиент Lineage 2 умеет отправлять дампы крашей и их текстовое описание на внешний сервер. Происходит это через утилиту L2CrashSender.exe, которая должна лежать в вашей папке System. Я проверял и делал все на 140 клиенте, но не думаю, что корейцы что-то меняли.

Речь идет про это окно:
1755281459346.webp
Если пользователь нажимает кнопку: Submit Bug Report, то Window.dll инициирует отправку через вызов экзешника с аргументами, например:
Код:
L2CrashSender.exe -url=http://127.0.0.1 -version=1.0.0 -error=C:\temp\error.txt -dump=C:\temp\crashdump.dmp

Для того, чтобы сам краш дамп создавался необходимо включить его в l2.ini.
Код:
[CrashReport]
L2CrashReportURL=http://127.0.0.1
L2CRVersion=1.0.0
WithCrashDump=true
Очевидно, что URL будем указывать тот который нам нужен, версию можно ставить любую строковую.

Итого, мы знаем, что клиент вызывает внешнюю утилиту для отправки краш дампа. При реверсе - там ничего необычного, отправка осуществляется через http multipart(на 80 порт). Это дает нам возможность спокойно использовать данную фичу для сбора крашей от игрков.

Вот тут навайбкодил серверную часть для приема дампов(спецом на java 8 без доп зависимостей):

Вот тут отреверсил и навайбкодил L2CrashSender, в целом можно и оригинальный использовать, но если захочется кастомизировать, то заготовка есть:

В итоге при поднятии сервера краши будут складываться в папку и позволять postmortem анализ.
1755282016799.webp
В текстовом файле будет лежать то, что пользователь видит как текст ошибки.

А файл dmp можно открыть через и посмотреть, например, стек:
1755282108465.webp
 
Последнее редактирование:

Now we need to convince players to click "submit" instead of closing :ROFLMAO:
 
Добавил поддержку отправки лог файлов в кастомный L2CrashSender и поддержку на серверсайде. Плюс секурностями обложил

Улетать будут l2.log и network.log если таковые имеются
1755511417088.webp

Включение логов в l2.ini в секции URL для хомячков:
Код:
IsL2NetLog=true
IsL2MemLog=True
IsL2ShowUIScriptDebugInfo=true
L2SaveLog=true
IsL2ShowUIScriptDebugInfo на 140 протоколе, например, включает логи из interface.u, который переданы через log() + доп из dll, но спамит знатно
 
Последнее редактирование:
Назад
Сверху