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!
90. Uma instrução que diz ao processador para não fazer absolutamente nada, apenas avançar o ponteiro de instrução.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.
objdump -d ./challenge | grep "je"90 90 no endereço da instrução.r2 -w ./challenge
s 0x4011fa
wx 90 90