Pliki maFile są to pliki przechowywane przez aplikacje steam na telefony. Przechowują informacje potrzebne do działania generowania kodów logowania, potwierdzania ofert, potwierdzania sprzedaży na markecie steam itp. itd.
Przykładowy plik maFile ( dane są podmienione )
{ "shared_secret": "11111111111111111111111111", "serial_number": "11111111111111111", "revocation_code": "R11111", "uri": "otpauth://totp/Steam:example1?secret=1111111111111111111111111111&issuer=Steam", "server_time": "1111111111", "account_name": "Example1", "token_gid": "11111111111111", "identity_secret": "1111111111111111111111111", "secret_1": "1111111111111111111111", "status": 1, "device_id": "android:1111111111-1111-111111-1111111", "fully_enrolled": true, "Session": { "SessionID": "11111111111111111111111", "SteamLogin": "Example SteamID64Here%7C%1111111111111111111111111111111111", "SteamLoginSecure": "Example SteamID64Here%7C%1111111111111111111111111111111111", "WebCookie": "1111111111111111111111111111111111", "OAuthToken": "11111111111111111111111111111111111", "SteamID": Example SteamID64 } }
Czym są pola w tej strukturze ?
shared_secret - Secret służący do generowania kodów logowania poprzez np. https://github.com/DoctorMcKay/node-steam-totp serial_number - Numer seryjny 2fa (unikalny dla każdego tokena) revocation_code - Kod do usunięcia steam guard uri - URL do generowania kodu QR server_time - Obecny czas serwera account_name - Login konta token_gid - Token GID przypisany przez serwer identity_secret - Secret służący do potwierdzania trade lub operacji na markecie poprzez np. https://github.com/DoctorMcKay/node-steam-totp i https://github.com/DoctorMcKay/node-steamcommunity secret_1 - Zapasowy secret status - Wartość zwracana przez steam , jeśli różna od 1 wystąpił błąd ( https://github.com/DoctorMcKay/node-steamcommunity/blob/master/resources/EResult.js ) device_id - ID Urządzenia fully_enrolled - Prawdopodobnie czy 2fa został w pełni ustawiony SessionID - ID Sesji SteamLogin - Wartośc cookie SteamLogin potrzebna do zalogowania do sesji SteamLoginSecure - Wartośc cookie SteamLoginSecure potrzebna do zalogowania do sesji WebCookie - Wartośc cookie SteamLoginSecure potrzebna do zalogowania do sesji OAuthToken - Toke który razem z aktualnym kodem wygenerowanym na podstawie shared_secret może posłużyć do logowania SteamID - SteamID64 Konta
Przygotowany typ dla TypeScript do parsowania jsona. Warto sprawdzić też bibliotekę służąco do parsowania maFile https://github.com/sentisso/node-mafiles
type MaFile = { shared_secret: string; serial_number: string; revocation_code: string; uri: string; server_time: number; account_name: string; token_gid: string; identity_secret: string; secret_1: string; status: number; device_id: string; fully_enrolled: boolean; Session: { SessionID: string; SteamLogin: string; SteamLoginSecure: string; WebCookie: string; OAuthToken: string; SteamID: BigInt } }
Dla osób bardziej zainteresowanych polecam przejrzeć sobie ten plik https://github.com/DoctorMcKay/node-steam-client/blob/master/steam-resources/protobufs/steamclient/steammessages_twofactor.steamclient.proto