Substituir a troca por valores aleatórios é equivalente a sobrescrever imagens de processo na memória com valores aleatórios.
Se um segmento de texto com valores aleatórios for executado, o resultado mais provável é a finalização do processo devido a uma instrução ilegal (sinal SIGILL
).
Se um segmento de dados com valores aleatórios for lido, o resultado é provavelmente a finalização do processo devido a uma falha de segmentação (sinal SIGSEGV
), porque os ponteiros apontarão fora do espaço de endereço do processo. Note que os ponteiros são dados, assim como os escalares. Especialmente a pilha geralmente contém vários ponteiros; Quando uma instrução return é executada, uma entrada de pilha aleatória causa um salto para um endereço aleatório.