Como escrever em binarios?

Como posso realizar a escrita em binário, ou seja, bit a bit, e executar no processador Windows x64 ou Linux x64?
Ex de opcode:
Mov rax, 43
Traduza para binário
01010101110

Se traduzido corretamente é um comando valido

Escrever código em binário (bit a bit) é uma tarefa complexa e geralmente não é uma prática comum no desenvolvimento de software moderno devido à sua natureza propensa a erros e difícil manutenção. No entanto, eu vou fornecer um exemplo simplificado para ilustrar o processo. Tenha em mente que escrever código diretamente em binário é uma abordagem avançada e propensa a erros.

Só faltou fornecer o exemplo simplificado.

2 curtidas

Vê se o conteúdo desse vídeo ajuda em alguma coisa:

O colega não quer gravar arquivos usando Java, ele quer aprender a programar escrevendo diretamente o código binário para o sistema operacional.

Nesse caso seria algo em Assembly?
Ex: A linguagem de máquina do computador simplificado

Tem essa thread também:

Não, o assembly ainda é um nível mais alto, pois suas instruções são humanamente legíveis, um programa em assembly precisa ser traduzido para o código de máquina.
O que o nosso coleguinha quer fazer, é a loucura de escrever diretamente o bytecode nativo.

2 curtidas

O pessoal vive em Nárnia, não se dão nem ao trabalho de dar uma pesquisadinha mínima e provavelmente tem experiência zero. Imagina escrever em binário, do zero, lidando com absolutamente TUDO? Além do assembly ser um nível de abstração acima, ainda tem toda complexidade de se lidar diretamente com operaçlões de ES por exemplo. Mesmo quem programa em assembly vai fazer uso de chamadas de sistema (syscalls) para realizar diversos tipos de operações. O pessoal acha que programar ou “conversar” com o computador é igual no filme Matrix ou em algum desenhozinho… Outra coisa impressionante, a maioria dos tutoriais ou materiais que falam de coisas mais baixo nível ficam só no básico do básico do básico, em português então nem se fala…

2 curtidas

Já vi é só fazer o seguinte:

Código Assembly

nasm mov.asm -o Mov.bin

Pegar os bits dos bytes

E tá feito…

É loucura, é por isso que todo mundo só fala o extremo básico.

Mas aí vc não “escreveu em binário”. Vc escreveu um código em Assembly (no caso, o arquivo mov.asm) e a partir dele gerou o binário (passando-o para o nasm).

Da forma que vc perguntou, deu a entender que queria gerar o binário manualmente, escrevendo os bytes diretamente (ou seja, sem escrever em Assembly, o que o pessoal entendeu era que vc queria gerar os bytes do arquivo .bin diretamente). Mas não foi isso que vc fez.

No fundo, vc fez o equivalente a escrever código em uma linguagem qualquer, para depois compilar e gerar o respectivo binário. Vc não “escreveu em binário”, vc escreveu o código na linguagem. E o binário foi gerado a partir deste código.

2 curtidas

Talvez você esteja fazendo algum exercício de estudo, ou treinamento, ou autoditata. Nessa linha de raciocínio talvez fosse bom você dar uma estudada em compiladores.

Mas lembra uma coisa normalmente isso fica no mundo da teoria, ná pratica, em uma empresa com aplicações comerciais você dificilmente vai precisar resolver coisas desse tipo.

Na pratica existem um monte de empresas que trabalham com hardware

1 curtida