Stuktura pliku maFile z Steam Authenticator

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

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.