Casos de uso
Ir até o offset 0x100 do arquivo
A partir da visão Hex, no modo NORMAL, basta comandar :100 e pressionar Enter. Isso faz com o que o dz6 entre no modo de comando e leia o comando “100”. Um comando numérico basicamente pede ao dz6 para te levar até uma posição no arquivo (que chamamos de file offset em inglês). Como o padrão é hexadecimal, digitar :100 faz você navegar até a posição 0x100 do arquivo. Se você quiser o centésimo byte, ou seja, informar a posição em decimal, basta usar :100t (o sufixo t é para decimal).
Zerar 32 bytes a partir da posição 0x50
A ideia é zerar os bytes de 50 até 6F, totalizando 32 bytes. Bem, há mais de uma maneira. Uma é comandar :50 para ir até o offset 50. Depois, pressionar v para entrar no modo de seleção, tecla j duas vezes para selecionar as duas linhas de bytes (assumindo linhas com 16 bytes), depois h para voltar uma posição e então teclar z.
Uma outra é com o comando :sel 50 31t e depois teclar z para zerá-los.
Buscar e substituir uma string
Suponha que você queira encontrar o texto “secreto” num arquivo. Abra-o no dz6 e pressione /. Digite o texto “secreto” (sem aspas) e então aperte Enter. Se o texto existir, o dz6 te leva até a posição dele.
Após encontrá-lo, pressione r, depois Tab. Escreva o novo texto e pressione Enter. Depois é só salvar com :w ou salvar e sair com :wq (ou :x).
Alternativamente, você pode listar as strings do arquivo com a tecla s, depois pressionar / para filtrar e digitar a palavra “secreto”, ou uma expressão regular com um pedaço dela, tipo secr.* ou só secr.
Buscar um número inteiro
Ainda não há suporte para busca direta de inteiros, mas você sempre pode abrir a busca de bytes com / e depois Tab. Aí é só digitar o número com o endianness correto. Por exemplo, se for o número 2025 (ano de lançamento do dz6) em 16-bits numa arquitetura little-endian, será e907. Aperte Enter. Se o número existir, o dz6 te leva até ele. Caso contrário, exibe uma mensagem de erro.