Jump to content

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


Carol Martineli

Recommended Posts

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 to comment
Share on other 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 to comment
Share on other sites

  • Administrators

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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...