Jak był artykuł?

1539530sprawdzanie plików cookieSkyrim razem i SKSE pojawiają się problemy związane z używaniem kodu i kwestiami prawnymi
Media
2019/02

Skyrim razem i SKSE pojawiają się problemy związane z używaniem kodu i kwestiami prawnymi

Wygląda na to, że ostatnio pojawiły się pewne problemy z modderami, które mogą stać się brzydkie w związku z hitową grą RPG Bethesdy z 2011 roku The Elder Scrolls V: Skyrim. Od niedawna programista SKSE opisuje, w jaki sposób kod SKSE został wykorzystany w Skyrim Razem mod, który narusza kilka warunków, co podobno źle odbija się na zespole SKSE i może prowadzić do „bardzo złej sytuacji prawnej z Bethesdą”.

Jeśli nie wiesz, Skyrim Script Extender (SKSE) to narzędzie używane przez wielu Skyrim modderów, co pozwala możliwości skryptowania osiągnąć nowe granice podczas dodawania dodatkowych/nowych funkcji Skyrim.

To teraz prowadzi do Skyrim Razem, który jest nadchodzącym modem, który jest obecnie w fazie beta. Ten mod pozwala innym Skyrim gracze mogą połączyć siły i odkrywać fantastyczny świat tej gry. Jednak zespół odpowiedzialny za mod ma konto Patreon na rzecz którego należy przekazać darowiznę, aby wypróbować wersję beta:

„Zdecydowaliśmy się zapewnić dostęp do zamkniętej bety WSZYSTKIM byłym i przyszłym patronom, nie dbamy o kwotę wsparcia, 1 $ wystarczy, aby się dostać. To jest wersja BETA, nie zwrócimy ci 1 $, jeśli nie będziesz zadowolony ze stanu bety, bo nie mamy czasu się tym zajmować. Jeśli nie jesteś pewien, nie dołączaj do wersji beta, zrobiliśmy to tylko po to, aby ograniczyć liczbę osób dołączających do naszych serwerów. Nie obiecuj, jeśli oczekujesz w pełni funkcjonalnego, wolnego od błędów doświadczenia.”

Istnieje jednak problem, który może spowodować pojawienie się puszki robaków zajmujących się Bethesdą i w tym przypadku problemów prawnych. Według twórcy SKSE Extrwi, poniższe informacje na temat sub-reddit r/skyrimmods został opublikowany 2 lutego 2019 roku:

„Myślę, że nadszedł czas na więcej dramatu. Przepraszam, nienawidzę robić takich rzeczy.

 

Skyrim Together kradnie kod SKSE, niewymieniony w czołówce, bez pozwolenia, z wyraźnym zapisem w licencji ograniczającym jednemu z autorów cokolwiek wspólnego z kodem, który zaprzecza używaniu któregokolwiek z nich (na wypadek, gdyby zostało to usunięte)? Dowód jest całkiem jasny, jeśli spojrzysz na moduł ładujący i bibliotekę DLL w dezasemblerze. Używają zhakowanej wersji klasycznej 1.7.3, prawdopodobnie z niektórymi makrami preprocesora, aby w razie potrzeby przełączać typy struktur między wersjami x64 i x86.

 

Zaczynając od modułu ładującego, jest to w zasadzie skse_loader z usuniętymi wszystkimi opcjami i zmienionymi komunikatami o błędach. Zasadniczo sprawdzają kod błędu CreateProcessA pod kątem ERROR_ELEVATION_REQUIRED, a następnie mają nieco przeredagowane okno komunikatu o błędzie, aby obsłużyć ten przypadek. To był, moim zdaniem, nieco podejrzany zbieg okoliczności.

 

Przejdź do rzeczywistego kodu wstrzyknięcia DLL pod adresem +4B81 i postępuj zgodnie z poleceniem InjectDLLThread skse64skse64_loader_commonInject.cpp. Pierwsza funkcja to po prostu opakowanie SEH wywołujące DoInjectDLLThread w celu wykonania prawdziwej pracy. DoInjectDLLThread wygląda prawie tak samo, tylko po usunięciu sprawdzenia, czy biblioteka DLL istnieje. Limit czasu dla WaitForSingleObject jest dokładnie taki sam, nawet przy przełączaniu pomiędzy INFINITE, 60 sekund i w ogóle nie jest wywoływany za pomocą dwóch argumentów bool o tych samych indeksach. To całkiem wyraźna kopia.

Extrwi uzupełniłby powyższe informacje postem pokazującym mnóstwo ścieżek plików dotyczących biblioteki DLL na poniższym obrazku:

Zobacz post imgur.com

Extrwi wyjaśnia później, w jaki sposób główne źródło SKSE nie jest objęte licencją typu open source, w przeciwieństwie do wspólnych plików SKSE (lub licencji MIT):

„Common ma oczywiście licencję MIT i nie wymaga podawania źródła (ale zawsze jest to mile widziane), ale główne źródło SKSE nie. Technicznie rzecz biorąc, zawsze podlegało to powszechnemu prawu autorskiemu”.

Wpis Extrwi dotyczy również skopiowanego niezmienionego kodu z SKSE:

„Patrząc na całą bibliotekę DLL, można łatwo zidentyfikować mnóstwo kodu, który został skopiowany w niezmienionej postaci z SKSE, jedynie na podstawie ciągów znaków i komunikatów o błędach. Dostępna jest większość, jeśli nie wszystkie, nowych funkcji skryptowych, serializacja, w zasadzie wszystko. Dane RTTI wskazują na mnóstwo niestandardowych klas SKSE; szczerze mówiąc, to wszystko sprawia, że ​​czuję się chory.

 

Jeśli chcesz, aby świetny „dymiący pistolet” kodu SKSE był bezpośrednio używany w dodanych przez nich funkcjach, spójrz na definicję TESNPC i porównaj ją z funkcją pod adresem +2B5A00, która wydaje się chodzić po członkach TESNPC (między innymi ), aby zbudować ciąg. Nazwy pól po prostu się zgadzają, nawet włączając pola ponumerowane „nieznane”. To więcej niż przypadek.”

Pokazując „dymiący pistolet”, Extrwi kończy wyjaśniając, jakie niebezpieczne działania, takie jak te popełnione przez zespół Skyrim Together, mogą sprowadzić na innych:

„Ta kradzież kodu źródłowego jest całkowicie niewymieniona w czołówce, autorzy zaprzeczają temu i jestem pewien, że bardzo pomogła w opracowaniu ich moda, z którego obecnie można korzystać tylko za opłatą. Obecnie nie jestem pewien, co zrobić w tej sytuacji.

 

Należy pamiętać, że zwykłe wtyczki z kodem natywnym korzystają bezpośrednio z kodu źródłowego SKSE i jest to w porządku. Powinny mieć dostępne źródło, ale w rzeczywistości nie zawsze tak się dzieje. ST powoduje problem, naruszając licencję, nie udzielając kredytów, dokładając wszelkich starań, aby zachować zamknięte źródło i skutecznie pobierać opłaty za mod. To źle o nas świadczy i stawia nas w bardzo złej sytuacji prawnej z Bethesdą.”

Jak wspomniano powyżej, pełny post, który napisał Extrwi, można znaleźć powyżej r/skyrimmods.

Inne media