Ir para conteúdo

Binários guardam informações da máquina que os criou ?


Carol Martineli

Posts Recomendados

Olá,

Este código abaixo em C produz um arquivo binário (bad.m3u) com variáveis de ambiente dentro dele.

Pelo que entendi, isso acontece quando não se inicializa as variáveis.

Gostaria de saber se arquivos executáveis em geral também guardam informações da máquina que os gerou dentro deles ? (Isto seria muito oportuno para agencias de segurança como a NSA)

 

 

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

int main() {

    char  *fill = malloc(485 * sizeof(char));
    int i;
    char ret[] = "BBBB";
    FILE *fp;

    fp = fopen("bad.m3u", "wb");

    if (!fp) {
        printf("Não deu");
        return(0);
    }

    //memset(fill, 'A', 485);
    fwrite(fill, 1, 485, fp);
    fputs(ret, fp);

    for (i = 0; i <= 0xFF; i++){
        fwrite(&i, 1, 1, fp);
    }

    fclose(fp);
        return(0);

}

Link para o comentário
Compartilhar em outros sites

Obrigado Frederico, 

O problema que relatei de lixo de memória acontece nesta versão do Code Blocks (codeblocks-20.03mingw-setup.exe).

O que eu gostaria de saber é se existe alguma possibilidade desses compiladores proprietários como (Visual Studio, Delphi, Go Lang) armazenar o mac address da máquina que gerou o executável dentro deles (dentro do executável gerado) ?

 

Link para o comentário
Compartilhar em outros sites

O endereço MAC da máquina não. No entanto, as seguintes informações podem estar disponíveis, dependendo do formato de exeuctável em uso e das opções configuradas no compilador e linker:

  • Caminho completo de onde os arquivos de código-fonte estão armazenados, o que pode conter o nome de usuário da máquina.
  • Versão do compilador e do linker utilizado, seja em texto puro, ou seja por padrões que permitam identificação, como os utilizados pelo DIE. Por exemplo, este arquivo contém a lógica que o DIE utiliza para identificar versões do Visual Studio.
  • Data e hora que o arquivo executável foi gerado (somente em PE).
  • Idioma de resources, o que pode sugerir o idioma do Windows de quem compilou o binário (somente em PE).

Em tempo, sempre que postar código aqui, use o botão <> para formatar seu código como código. Olha a diferença:

Sem formatação:

#include <stdio.h>

printf("Olá, mundo!\n");

Com formatação:

#include <stdio.h>

printf("Olá, mundo!\n");

Valeu!

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...