Uma Aventura Empolgante: Criando um Programa C Automodificável

2025-05-25

Este artigo detalha a criação de um programa C capaz de modificar seu próprio código em tempo de execução. O autor primeiro explica como o código do programa é armazenado na memória e como usar a função `mprotect()` para alterar as permissões do segmento de código para gravável. Em seguida, modificando o valor imediato de uma instrução `addl`, o autor demonstra a alteração da saída do programa. Finalmente, o autor vai além, usando `memcpy()` para copiar um shellcode para o segmento de código do programa, executando com sucesso um comando de shell em tempo de execução. Todo o processo é tecnicamente desafiador, exigindo um forte entendimento da linguagem de montagem x86_64.

Desenvolvimento Programa Automodificável