Як пройшла стаття?

1539530перевірка файлів cookieSkyrim Together і SKSE Проблеми виникають через використання коду та юридичні проблеми
Медіа
2019/02

Skyrim Together і SKSE Проблеми виникають через використання коду та юридичні проблеми

Схоже, нещодавно виникли деякі проблеми моддерів, які можуть стати потворними, щодо популярної рольової гри Bethesda 2011 року. The Elder Scrolls V: Skyrim. Нещодавно розробник SKSE описав, як код із SKSE використовувався в Skyrim Together мод, який порушує кілька умов, що, як кажуть, погано позначається на команді SKSE і може призвести до «дуже поганої юридичної позиції з Bethesda».

Якщо ви не знаєте, то Skyrim Script Extender (SKSE) — це інструмент, яким користуються багато Skyrim modders, що дозволяє сценаріям досягти нових меж, додаючи додаткові/нові функції до Skyrim.

Тепер це призводить до Skyrim Together, який є майбутнім модом, який зараз знаходиться в бета-версії. Цей мод дозволяє товаришам Skyrim гравці можуть об’єднатися та дослідити фантастичний світ цієї гри. Однак у команди, яка розробила мод, є Patreon рахунок на яку потрібно зробити пожертву, щоб випробувати бета-версію:

«Ми вирішили надати доступ до закритого бета-тестування ВСІМ колишнім і майбутнім патреонам, нас не хвилює сума внеску, достатньо 1 долара, щоб отримати доступ. Це БЕТА-ВЕРСІЯ, ми не повернемо вам 1 долар, якщо ви незадоволені станом бета-версії, тому що ми не маємо часу займатися цим. Якщо ви не впевнені, що не приєднуйтеся до бета-версії, ми зробили це лише для того, щоб обмежити кількість людей, які приєднуються до наших серверів. Не обіцяйте, якщо ви очікуєте повнофункціонального досвіду без помилок».

Але є проблема, яка може призвести до появи хробаків, що стосуються Bethesda та юридичних питань у цьому випадку. За словами розробника SKSE Extrwi, наступна інформація на sub-reddit r/skyrimmods було опубліковано 2 лютого 2019 р.:

«Я думаю, що настав час для більшої драми. Вибачте, мені не подобається робити подібні речі.

 

Skyrim Together викрадає код SKSE, не вказаний у титрах, без дозволу, з явним терміном у ліцензії, що обмежує одного з авторів мати будь-яке відношення до коду, який заперечує використання будь-якого з них (у випадку, якщо це буде видалено)? Доказ досить очевидний, якщо ви подивіться на завантажувач і dll у дизассемблері. Вони використовують зламану версію 1.7.3 classic, ймовірно, з деякими макросами препроцесора для перемикання типів структур між версіями x64 і x86.

 

Починаючи із завантажувача, це в основному skse_loader з вимкненими параметрами та зміненими повідомленнями про помилки. В основному вони перевіряють код помилки CreateProcessA на ERROR_ELEVATION_REQUIRED, а потім мають дещо змінене вікно повідомлення про помилку для обробки цього випадку. Я бачу, що це трохи підозрілий збіг.

 

Перейдіть до фактичного коду ін’єкції DLL за адресою +4B81 і дотримуйтесь skse64skse64_loader_commonInject.cpp InjectDLLThread. Перша функція — це просто обгортка SEH, яка викликає DoInjectDLLThread для виконання справжньої роботи. DoInjectDLLThread виглядає майже так само, тільки з вилученою перевіркою існування DLL. Тайм-аут для WaitForSingleObject точно такий самий, навіть коли він перемикається між НЕСКІНЧЕННИМИ, 60 секундами, і взагалі не викликається через два логічні аргументи з однаковими індексами. Це досить чітка копія».

Extrwi доповнить наведену вище інформацію публікацією, яка показуватиме безліч шляхів до файлів щодо DLL на зображенні нижче:

Подивитися повідомленням imgur.com

Пізніше Extrwi пояснює, як основне джерело SKSE не ліцензується за ліцензією з відкритим вихідним кодом, на відміну від загальних файлів SKSE (або ліцензії MIT):

«Common, звичайно, має ліцензію Массачусетського технологічного інституту і не потребує посилання (але завжди цінується), але основне джерело SKSE — ні. Технічно це завжди було під загальним законом про авторське право».

Запис від Extrwi також стосується скопійованого незмінного коду з SKSE:

«Дивлячись по всій DLL, є тонни коду, який легко ідентифікувати як скопійований без змін із SKSE лише за рядками та повідомленнями про помилки. Є більшість, якщо не всі нові функції сценарію, серіалізація, практично все. Дані RTTI вказують на безліч спеціальних класів SKSE; чесно кажучи, мене все нудить.

 

Якщо ви хочете, щоб чудовий код SKSE використовувався безпосередньо у функціях, які вони додали, подивіться на визначення TESNPC і порівняйте його з функцією за адресою +2B5A00, яка, здається, проходить через членів TESNPC (серед іншого). ), щоб побудувати рядок. Назви полів випадково збігаються, навіть включаючи пронумеровані «невідомі». Це поза випадковістю».

Виставляючи «димячу рушницю», Extrwi завершує поясненням, які небезпечні дії, подібні до тих, які вчинила команда Skyrim Together, можуть призвести до інших:

«Ця крадіжка вихідного коду абсолютно не підтверджується, заперечується авторами, і я впевнений, що це дуже допомогло нам у розробці їхнього моду, який зараз можна використовувати лише за плату. Зараз я не знаю, що робити з цією ситуацією.

 

Зауважте, що звичайні плагіни власного коду використовують безпосередньо вихідний код SKSE, і це нормально. Передбачається, що вони мають доступ до свого джерела, але насправді це відбувається не завжди. ST створює проблему, порушуючи ліцензію, не вказуючи кредити, докладаючи зусиль, щоб зберегти закритий код, і фактично стягуючи плату за мод. Це погано позначається на нас і штовхає нас у дуже погане правове становище з Bethesda».

Як зазначено вище, повний допис, написаний Extrwi, можна знайти на r/skyrimmods.

Other Media