Como escrever em binarios?

13 respostas
windowsprogramação
R

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
[telefone removido]

Se traduzido corretamente é um comando valido

13 Respostas

J

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.

staroski

Só faltou fornecer o exemplo simplificado.

felipetavaresmelo

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

staroski

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.

felipetavaresmelo

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

felipetavaresmelo

Tem essa thread também:

staroski

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.

davidbuzatto

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…

R

Já vi é só fazer o seguinte:

Código Assembly

nasm mov.asm -o Mov.bin

Pegar os bits dos bytes

E tá feito…

R

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

hugokotsubo

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.

felipetavaresmelo

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.

j-menezes

Na pratica existem um monte de empresas que trabalham com hardware

Criado 13 de janeiro de 2024
Ultima resposta 17 de fev. de 2024
Respostas 13
Participantes 7