códigos em Assembly, úteis para a compreensão de trechos de binários quando fazemos engenharia reversa.
Zerar variáveis
Assembly
xor eax, eax
Contagem de 1 a 10
Assembly v1
Assembly v2
xor ecx, ecx
loop:
inc ecx
cmp ecx, 0xa
jl loop
Testar se é zero
Assembly v1
Assembly v2
cmp eax, 0
je destino
Não fazer nada
Parece bobo, mas "fazer nada" corretamente significa não alterar nenhuma flag, nem nenhum registrador. Seguem as instruções que conheço:
Assembly v1
Assembly v2 xchg eax, eax
Instruções que não fazem nada também podem ser utilizadas como padding necessário para o correto alinhamento das seções do binário em memória. Já vi o GCC utilizar XCHG AX, AX neste caso.
Compartilhar