DevLog: L2x Docs

rmx

BPD🖤OCD
Let's make it happen
Победитель в номинации 2025
Чёрный Стрелок
Стальной Визионер
Старожил I степени
Сообщения
148
Розыгрыши
0
Репутация
242
Реакции
200
Баллы
1 405
Отхожу от L2x в отдельную тему, так как возможно получу прикольный фидбэк от комюнити в более сконцентрированной манере отдельно от всей экосистемы под-проэктов.

И так.

Что такое L2x Docs?

Попытка собрать в едино всю информацию по "умершим" / "убитым" и кандидатам в "реанимированные" ММО в одно место в структурированной форме, как веб и десктопное приложение, на основе открытых, закрытых и отдельно опубликованных "хлебных крошках" на этом и на других порталах, по всем инересующим меня версиям игр.

В планах:
(Short-term)
Lineage2
TERA

(Long-term)
B&S
Aion
Archeage
Perfect World
Для чего?
Чтоб было легко работать с данными по этим ММО, помочь новичкам в комюнити, централизировать информацию для более легкого чтения и ассимиляции информации.

Также на основе данных по двум и/или более играм суметь построить Generic MMOx Template для дальнейщего использования в Lineage 2 Remaster где главная фишка будет модулярность, (минимум наследий, все чёрез композицию) переиспользование данных и структур по всем слоям DDD и максимизировать перформанс всего и вся через DOP (ECS).


Так как тема создана в категории `Флэйм` проблем от того что я буду постить быть не должно, но это поддерживает огонь во мне продолжать всё это.
Спасибо за внимание...
 
19/02/2025


WIP: Переношу пока 1:1 как сделано на с ссылками на внутренний фтп сервер по всем версиям игры.
Еще раз перепроверяю наличие нужных мне версий. Думаю как сделать более упрощенное чтение и аксесс всем этим данным.

---

Всё что успел

+ Добавил деволтный поиск меню.
+ i18n и структуру папок под это.
+ Добавил CH регион для китайского кастумного клиента.
1739930622546.webp 1739931030384.webp
 
Последнее редактирование:
В мертвые проекты без оф локализаций Теру внесли, а вот л2 ещё рано, она ещё не мертва. После Теры была - Элион, прожила пол года.
Мёртвые:
Тera
Elyon
R2 online
RF online
Guild Wars 1
Bless
Rift
LOTRO
Скоро Archeage на очереди, его уже закрывают по всему миру, будет только новый проект (Хроники Происхождения) Archeage Chronicle.
 
16/01/2025

По тем малым крупицам времени что у меня есть, решил вернутся немного к структуре документации и посвятить себя хобби.


- Сделал селектор игр с возможностью смены текущей версии документации под определенную игру в формате:
<GAME>/<REGION>/<GAME_TYPE>/<GAME_VERSION>/<PROTOCOL|VERSION>

Посмотреть вложение 2026-01-16_16-31-56.mp4

- Проработал пару вариантов как именно буду показывать диффы между патч версиями игр 1768575443884.webp

- Пару экспериментов с автосканированием клиентов и внесение в базу для диффа а также АПИ в основе которого гит будет вызыватся для показа изменений.
Сообщение объединено:
03/06/2026

🫠 Написал/навайбил основу для автогенерации документации по клиенту игры.


- Хороший прогресс по фрэймворку (по сути врапперу) для автосканирования, дизасма и декомпиляции клиентов, начал с L2 Prelude - C1 (baseline) и интеграции в проект документации на основе Ghidra Headless API. Что реализовано на данный момент:
  • Генерация многоступенчитого процесса реверса по фазам через кастумный cli
  • Комплексная система определения существующих функций по каждой .DLL на основе кросс-референса между сурсами ut-2003-retail-v2107, .PDB символов из релизной версии .DLL пофикшеного движка из L2xRED, baseline референс проекта с загруженными .PDB в Гидре для движка а также проекта в Гидре для реверса файлов .DLL самой игры.
  • Система определения функций на основе создания FIDB из исходного кода и зашареных FIDB сигнатур в интернете
  • Система определения функция на основе многостепунчитого аргессивного поиска
Код:
INFO  Applied data type archive: windows_vs12_32 (ApplyDataArchiveAnalyzer)
INFO  -----------------------------------------------------
    ASCII Strings                              2.737 secs
    Apply Data Archives                        4.841 secs
    Call Convention ID                         0.559 secs
    Call-Fixup Installer                       0.898 secs
    Create Address Tables                      2.311 secs
    Create Function                            0.000 secs
    Data Reference                             1.715 secs
    Decompiler Parameter ID                   53.059 secs
    Decompiler Switch Analysis                19.239 secs
    Demangler Microsoft                        1.407 secs
    Disassemble Entry Points                   2.152 secs
    Embedded Media                             0.062 secs
    External Entry References                  0.270 secs
    Function ID                               25.371 secs
    Function Start Pre Search                  0.247 secs
    Function Start Search                     25.566 secs
    Function Start Search After Code           9.526 secs
    Function Start Search After Data           6.771 secs
    My Analyzer (cache hit)                    0.000 secs
    Non-Returning Functions - Discovered       3.393 secs
    Non-Returning Functions - Known            0.338 secs
    PDB Universal                              1.560 secs
    Reference                                  2.871 secs
    Scalar Operand References                  8.248 secs
    Shared Return Calls                        8.837 secs
    Stack                                      3.904 secs
    Subroutine References                      1.979 secs
    Windows x86 PE Exception Handling          1.769 secs
    Windows x86 PE RTTI Analyzer               0.001 secs
    Windows x86 Thread Environment Block (TEB) Analyzer     0.001 secs
    WindowsResourceReference                   1.479 secs
    X86 Function Callee Purge                  0.796 secs
    x86 Constant Reference Analyzer           27.371 secs
-----------------------------------------------------
     Total Time   219 secs
-----------------------------------------------------
Код:
--- [engine vs game] Core.dll ---
engine_pe: F:/reanimatedmanx/data/personal/projects/mmosandbox/engines/L2x.RED/Core/Debug/Core.dll
game_pe: F:/reanimatedmanx/data/personal/projects/mmosandbox/games/lineage2/clients/L2.C1/system/Core.dll
engine_build: Debug
game_build: Retail/client
engine_size_bytes: 879616
game_size_bytes: 925696
engine_db_functions: 5234
game_db_functions: 4641
engine_fun_star: 406 (7.8%)
game_fun_star: 2767 (59.6%)
engine_named_pct: 92.2%
game_named_pct: 40.4%
engine_has_warning: 259
game_has_warning: 512

Saved report to F:\reanimatedmanx\data\personal\projects\mmosandbox\web\docs\decompile\L2xRED.rep\db\meta.db (pipeline_reports)
Saved report to F:\reanimatedmanx\data\personal\projects\mmosandbox\web\docs\decompile\L2.C1-client.rep\db\meta.db (pipeline_reports)

Pipeline complete (8 phase(s) executed).

- Интеграция с плагином Ghidra MCP на уровне headless API для более комплексного реверса

- Импорт в локальную CMS (Pocketbase) данные о реверсе и предоставление через API фронтенду документации (на абсолютные пути не смотрим пока 🥶)
1780512366551.webp

- Обновил фронт для быстрого и удобного поиска и отображение нужных данных
  • Поиск по названиям примитивов
  • Фильтрация по типу примитива
  • Отображение списка примитивов
  • Отображение оффсета примитива
  • Отображение общего количество найденых примитивов, сколько было успешно авто-переименованы по найденым функциям в PDB & FID и сколько осталось

1780514541445.webp
1780515109756.webp
 

Вложения

  • 1780515053238.webp
    1780515053238.webp
    21,9 КБ · Просмотры: 16
Последнее редактирование:
Назад
Сверху Снизу