Zgłośzaloguj się
Archiwum · zachowane bez zmian
Społecznościowy projekt ochrony gry

Najprostsza możliwa prośba

Zachowane w wersji sprzed wyłączenia serwerów 30 czerwca 2026 roku. Prośby poniżej i terminy, które zakładają, pozostawiono bez zmian.

Najmniejszy zestaw rzeczy, które Bethesda mogłaby zrobić dla społeczności, by Blades działało na każdej platformie po 30 czerwca 2026 roku — bez stałego zaangażowania Bethesdy czy Microsoftu.

Wszystko poniżej sprowadza się do jednej idei: jednej ostatniej wersji klienta przyjaznej ochronie gry oraz krótkiego technicznego dokumentu przekazania. Strategiczne uzasadnienie, dlaczego wydawca mógłby zająć się tą prośbą, znajduje się na stronie strategii; ta strona to szczegóły techniczne.

Prośba 1

Wersja na iOS bez FairPlay.

Jedna ostatnia wersja klienta na iOS z usuniętym szyfrowaniem FairPlay, opublikowana publicznie. Bez tego ochrona wersji na iOS jest niemożliwa.

Pliki binarne z App Store są zaszyfrowane FairPlay; odszyfrowanie wymaga urządzenia z jailbreakiem i odpowiednią wersją iOS. Bez czystego pliku IPA narzędzia do sideloadingu, takie jak AltStore i Sideloadly, nie pomogą. Społeczność nie ma sama żadnej drogi do czystego pliku binarnego na iOS.

Jedna ostatnia wersja, wyeksportowana bez FairPlay i opublikowana w trwałym miejscu (strona Bethesdy poświęcona ochronie gier, partner społeczności, pojedynczy link do archiwum), utrzyma iOS przy życiu po zniknięciu gry z App Store.

Koszt dla Bethesdy
Kilka godzin pracy inżynierskiej, jednorazowo.
Ryzyko dla Bethesdy
Bliskie zera. Ten sam plik binarny trafił już na urządzenia graczy.
Prośba 2

Konfigurowalne adresy serwerów w wersji ochronnej.

Wersja ochronna na iOS (i odpowiednia wersja na Androida) odczytuje nazwy hostów serwerów z zasobu, który użytkownik może nadpisać — Servers.plist na iOS, odpowiedni zasób na Androidzie.

Krótka lista nazwanych punktów końcowych (uwierzytelnianie, gra, dobieranie przeciwników itd.), z których każdy wskazuje na nazwę hosta lub IP. Domyślnie zawiera obecne produkcyjne hosty Bethesdy; osoby ponownie podpisujące aplikację w społeczności podmieniają je przy podpisywaniu.

Efekt uboczny: wiele niezależnych społeczności może prowadzić własne serwery bez koordynacji, a jedną instalację klienta można w czasie jej życia kierować na różne serwery.

Na Androidzie: społeczność już dziś ma zmodyfikowany APK, który to robi. Oficjalna wersja na Androida z tą funkcją byłaby uprzejmością — mniej prawnej szarej strefy, więcej zaufania użytkowników — a nie warunkiem koniecznym. Ochrona Androida działa i bez niej; ta prośba najbardziej liczy się w przypadku iOS.

Koszt dla Bethesdy
Marginalny — flaga kompilacji i proste odczytanie zasobu. Łatwo połączyć z Prośbą 1.
Ryzyko dla Bethesdy
Żadne na iOS (wersja i tak zniknęła już z App Store). Na Androidzie bez zmian w działaniu wersji produkcyjnej; nadpisanie ma znaczenie tylko dla ponownie podpisanych kopii.
Prośba 3

Zaufanie do certyfikatów instalowanych przez użytkownika w wersji ochronnej.

Wersja ufa urzędom certyfikacji instalowanym przez użytkownika, więc klient może łączyć się z serwerem społeczności używającym certyfikatu TLS podpisanego przez społeczność.

iOS: usunąć NSPinnedDomains (lub inne własne przypinanie certyfikatów) z wersji ochronnej. Bez przypinania aplikacja korzysta ze standardowego systemowego magazynu zaufanych certyfikatów, który na iOS obejmuje już profile konfiguracji instalowane przez użytkownika.

Android: dodać do manifestu produkcyjnego network_security_config, który ufa urzędom certyfikacji użytkownika. Bez tego Android 7+ domyślnie odrzuca urzędy certyfikacji instalowane przez użytkownika.

Bez tej prośby konfigurowalne adresy z Prośby 2 są bezużyteczne — klient odrzuci certyfikat TLS serwera społeczności, zanim popłynie jakikolwiek ruch.

Koszt dla Bethesdy
Wpis w manifeście na Androidzie; usunięty klucz z Info.plist na iOS. Drobiazg.
Ryzyko dla Bethesdy
Żadne dla wersji ochronnej. Obecna aplikacja produkcyjna zachowuje przypinanie certyfikatów.
Prośba 4

Krótki techniczny dokument przekazania nieoczywistych szczegółów protokołu.

Dokument — kilka stron tekstu, a nie udostępnienie kodu — opisujący te części systemu, których emulator serwera nie odtworzy łatwo na podstawie samego obserwowanego ruchu.

  • Tokeny uwierzytelniania i sesji. Format, czas życia, czy cokolwiek po stronie klienta jest czymś więcej niż nieprzezroczystym identyfikatorem sesji, wszelkie wbudowane w klienta sekrety, których oczekuje serwer.
  • Nadrzędność stanu zapisu. Które podsystemy są nadrzędne po stronie serwera (miasta, ekwipunek, statystyki postaci), a które po stronie klienta; zasady uzgadniania; rozwiązywanie konfliktów.
  • Szyfrowanie UDP areny. Wyprowadzanie kluczy, wybór parametrów AEAD z libsodium, numeracja sekwencji, ramkowanie pakietów. Społeczność obecnie wyciąga klucze w czasie działania przez hooki Frida; dokumentacja zastąpiłaby to czystą reimplementacją.
  • Podpisy zabezpieczające przed modyfikacją. Wszelkie HMAC lub schematy podpisywania treści żądań oraz używane sekrety.
  • Weryfikacja paragonów zakupów w aplikacji. Proces, którym serwery Bethesdy weryfikowały paragony Apple/Google, i co serwer społeczności powinien robić z przywróconymi zakupami.
  • Wszystko inne, co według inżynierów Bethesdy osoba reimplementująca serwer mogłaby w przeciwnym razie przeoczyć.
Koszt dla Bethesdy
Kilka dni pracy inżyniera nad tekstem. Bez udostępniania kodu.
Ryzyko dla Bethesdy
Niskie. Dokument opisuje interfejsy, a nie implementacje; żaden zastrzeżony kod ani zasoby nie zostają udostępnione.
Długoterminowe marzenie. Idealnym wynikiem byłoby otwarcie kodu klienta i serwera na GitHubie, jak po latach stało się z wieloma starszymi grami (Doom, Quake, źródła Command & Conquer Remastered i wiele innych). Rozumiemy, dlaczego dziś nie jest to możliwe, a cztery powyższe prośby celowo ograniczono tak, by dało się je spełnić bez poruszania tej kwestii.

Ta strona opisuje najprostszą konkretną prośbę do Bethesdy. Szerszy kontekst strategiczny — dlaczego to ważne, dlaczego wydawca mógłby się zaangażować, jakie istnieją alternatywy — znajdziesz na stronie strategii projektu. Bez powiązań z Bethesda Softworks, ZeniMax Media ani Microsoft Corporation. The Elder Scrolls jest znakiem towarowym ZeniMax Media Inc.