Transformando uma sequencia de binário em executável
Publicado por Geraldo José Ferreira Chagas Júnior 09/04/2009
[ Hits: 8.622 ]
Homepage: http://prginfo.blogspot.com
Foi postado anteriormente por mim o programa viewbin que visualizava em binário um arquivo executável. Agora estou postando o inverso, transformar um arquivo com uma sequência de 0 e 1 em um executável.
Eles serão úteis em meu próximo artigo, assim, nós poderemos modificar um executável, transformando-o em binário, alterando seu conteúdo e retransformá-lo em executável.
/* bintoexe.c */ #include <stdio.h> char bitToByte (char* bin); int main (int argc, char* argv[]) { FILE *arq; FILE *arqDest; char buf[2]; char byte[8]; int contBit=0; unsigned int f; if (argc!=3) { printf ("Parametro incorreto.\n"); printf ("Informe o nome do arquivo a ser convertido e o nome do arquivo de destino\n"); return 1; } if (!(arq=fopen(argv[1],"r"))) { printf ("Nao foi possivel abrir o arquivo %s!",argv[1]); return 1; } if (!(arqDest=fopen(argv[2],"wb"))) { printf ("Nao foi possivel criar o arquivo %s!\n",argv[2]); return 1; } while (f=fread(buf,1,1,arq)) { if ((buf[0]=='1') || (buf[0]=='0')) { byte[contBit] = buf[0]; contBit++; if (contBit == 8) { buf[0] = bitToByte (byte); f=fwrite(buf,1,1,arqDest); } } /* o programa ignora qualquer sequencia que seja diferente de 8 zeros ou uns consecutivos */ else { contBit = 0; } } close (arq); close (arqDest); printf ("\n"); } char bitToByte (char* bin) { char r=0; if (bin[0]=='1') r |= 0x80; if (bin[1]=='1') r |= 0x40; if (bin[2]=='1') r |= 0x20; if (bin[3]=='1') r |= 0x10; if (bin[4]=='1') r |= 0x8; if (bin[5]=='1') r |= 0x4; if (bin[6]=='1') r |= 0x2; if (bin[7]=='1') r |= 0x1; return r; }
Organizador de filmes para o IMDB
Exemplo de manipulação de arquivos
Manipulaçao de arquivos e Meta dados em videos
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Criar perfil temporário no Active Directory samba4-21 (2)
Meu Kubuntu não inicia, além do modo de recuperação (no meu dualboot (1)
Site da gontijo simplesmente não abre, ERR_HTTP2_PRO... (3)