Ver código de um jogo

Boa noite, estava querendo ver o que tem dentro do código de um jogo, mas a extensão dele é .dat, já procurei muito como ver em texto mas não achei. Quando eu abro esse arquivo, só tem umas letras e símbolos estranhos. Tem como ver isso em texto normal?

profile.dat (27,4,KB)

Isso é um save do jogo, certo? De qual jogo é?

Não de forma trivial. Aparentemente, está em formato binário (em vez de texto comum), então provavelmente só o jogo que o criou pode lê-lo corretamente, ou seria necessário engenharia reversa para entender como ele funciona.

Abraço.

Um ponto de partida é usar algum editor ou visualizador hexa para tentar pescar alguma coisa… Algo do tipo:

#include <stdio.h>
#include <stdlib.h>

#define NUM_BYTES 16

void dump( FILE *file );
void printHeader( void );
void printLine( const int *chars, int offsetLabel, int until );

int main( int argc, char *argv[] ) {

    FILE *file = fopen( "profile.dat", "rb" );
    dump( file );
    fclose( file );
    return EXIT_SUCCESS;

}

void dump( FILE *file ) {

    int contOffset = 0;
    int cont = 0;
    int ch;
    int chars[NUM_BYTES];

    printHeader();

    while ( ( ch = getc( file ) ) != EOF ) {

        if ( cont < NUM_BYTES ) {

            chars[cont] = ch;
            cont++;

        } else {

            printLine( chars, contOffset, NUM_BYTES );

            chars[0] = ch;
            cont = 1;

            contOffset += NUM_BYTES;

        }

    }

    printLine( chars, contOffset, cont );

    fclose( file );

}

void printHeader( void ) {

    int i;
    printf( "Offset  " );

    int total = NUM_BYTES * 3 - 4;

    for ( i = 0; i < total / 2; i++ ) {
        printf( " " );
    }

    printf( "Bytes" );

    for ( ; i < total; i++ ) {
        printf( " " );
    }

    printf( "Caracteres\n" );

    printf( "------  " );

    for ( i = 0; i < NUM_BYTES - 1; i++ ) {
        printf( "---" );
    }

    printf( "--  " );

    for ( i = 0; i < NUM_BYTES; i++ ) {
        printf( "-" );
    }

    printf ( "\n" );

}


void printLine( const int *chars, int offsetLabel, int until ) {

    int i;
    printf( "%06X  ", offsetLabel );

    for ( i = 0; i < until; i++ ) {
        printf( "%02X ", chars[i] );
    }

    for ( ; i < NUM_BYTES; i++ ) {
        printf( "   " ) ;
    }

    printf( " " );

    for ( i = 0; i < until; i++ ) {
        printf( "%c", isprint( chars[i] ) ? chars[i] : '.' );
    }

    printf( "\n" );

}

Para o seu arquivo, a saída é essa aqui: saida.txt (128,6,KB)

O código é do DLS19, dentro dele tinha umas informações de jogo. Obrigado pela ajuda de vocês, com esse bin eu posso converter isso pra o texto normal do jogo?

parece que são arquivos zip.
temta abrir com o 7zip, ao abrir o game.dat, dentro irá conter o game~.swf, abra-o novamente com o 7zip, lá irá conter todos os arquivos que você quer, mas tem um porém, os arquivos parecem estar codificados, e suas extensões estão alteradas, todas estão com numeros em sua extensão.
Exemplo:
.21 = PNG (imagens)
.75 = ttf (fontes)

Mas mesmo assim, não é possível abrir renomeando … . =/
Me avisa se conseguir :flushed::call_me_hand: