Carol Martineli Posted November 13, 2022 at 08:24 PM Share Posted November 13, 2022 at 08:24 PM 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); } Quote Link to comment Share on other sites More sharing options...
fredericopissarra Posted November 13, 2022 at 11:58 PM Share Posted November 13, 2022 at 11:58 PM Nope... Você obteve algum lixo: E não... nenhuma informação sobre "a máquina que o criou"... Quote Link to comment Share on other sites More sharing options...
Carol Martineli Posted November 14, 2022 at 01:12 AM Author Share Posted November 14, 2022 at 01:12 AM 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) ? Quote Link to comment Share on other sites More sharing options...
fredericopissarra Posted November 14, 2022 at 02:25 AM Share Posted November 14, 2022 at 02:25 AM Não é isso que um compilador faz... Quote Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted November 14, 2022 at 02:56 PM Administrators Share Posted November 14, 2022 at 02:56 PM 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! Quote Link to comment Share on other sites More sharing options...
Carol Martineli Posted November 14, 2022 at 03:40 PM Author Share Posted November 14, 2022 at 03:40 PM Obrigado Fernando. Muito esclarecedor. 😀 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.