// 01 iniciante NOP (No Operation)

NOP
Patch

Dois bytes que apagam uma decisão inteira. A arte do No Operation.

O sistema verifica uma licença e tem uma decisão crítica: pular para a rejeição.

O objetivo é anular esse salto (jump). Se substituirmos a instrução de jump (je ou jne) por NOPs (90), o processador irá apenas ignorá-la e continuar a execução direto para o sucesso!

// conceitos necessários
NOP (No Operation)
Opcode 90. Uma instrução que diz ao processador para não fazer absolutamente nada, apenas avançar o ponteiro de instrução.
Tamanho do Salto
Se o salto indesejado tem 2 bytes (como 74 1a), você não pode simplesmente removê-lo. Você deve preencher o espaço original com exatamente a mesma quantidade de 90 90.

Onde está o salto que te bloqueia?
Se você apagar esse salto colocando NOPs por cima dele, o fluxo de execução continuará naturalmente através do portão que antes estava trancado.

// solução passo a passo
01
Encontrar o Jump
Com `objdump` ou `radare2`, localize onde o binário decide o seu destino.
bash
objdump -d ./challenge | grep "je"
02
O Patch
Utilize um editor hexadecimal ou o próprio radare2 para escrever 90 90 no endereço da instrução.
r2
r2 -w ./challenge
s 0x4011fa
wx 90 90
03
Verificar
Execute o programa. Sem a instrução que faria o desvio, o fluxo continua naturalmente e o acesso é concedido!