Cuando vi Tim Papes excelente vim-afterimage script, me recordó que Vim es completamente capaz como un editor de archivos binarios. Abrir un archivo con - b o ejecutar: set binary hace que Vim sea más adecuado para editar archivos binarios: textwidth y wrapmargin se establecen en 0 modeline y expandtab se desactivan Las opciones fileformat y fileformats no se usarán Los archivos se escribirán usando terminaciones de línea única Navegación Cuando navega por archivos binarios, countgo es útil porque mueve el cursor a un desplazamiento de bytes. Para obtener la ubicación actual, utilice g CTRL-G que muestra la columna, la línea, la palabra, el carácter y el byte actuales. Otro buen consejo es convertir archivos al formato hexdump usando: xxd. Es realmente posible convertir un binario a hexdump, editarlo, y luego convertirlo de nuevo a binario usando xxds - r (revertir) flag. Diffs binarios Utilizando canalizaciones anónimas (soportadas por bash y zsh), es bastante fácil obtener archivos Vim to diff mediante el redireccionamiento de la salida de xxd: xxd (1) - Página de manual de Linux xxd - hacer un hexdump o hacer lo contrario. Sinopsis xxd - help xxd opciones infile outfile xxd - revert options infile outfile Descripción xxd crea un volcado hexadecimal de un archivo dado o entrada estándar. También puede convertir un volcado hexadecimal de nuevo a su forma binaria original. Al igual que uuencode (1) y uudecode (1), permite la transmisión de datos binarios en una representación ASCII de correo seguro, pero tiene la ventaja de decodificar a salida estándar. Además, puede utilizarse para realizar parches de archivos binarios. Opciones Si no se infiere, se lee la entrada estándar. Si infile se especifica como un carácter, entonces la entrada se toma de la entrada estándar. Si no se da un outfile (o un carácter - está en su lugar), los resultados se envían a la salida estándar. Tenga en cuenta que se utiliza un analizador lento que no comprueba más de la primera letra de opción, a menos que la opción esté seguida por un parámetro. Los espacios entre una sola letra de opción y su parámetro son opcionales. Los parámetros de las opciones se pueden especificar en decimal, hexadecimal u octal. Así, - c8. - c 8. - c 010 y - cols 8 son todos equivalentes. - a-autoskip toggle autoskip: Un solo sustituye nul-lines. Valor predeterminado desactivado. - b - bits Cambia a bits (dígitos binarios) dump, en lugar de hexdump. Esta opción escribe octetos como ocho dígitos 1s y 0s en lugar de un volcado hexadecimal normal. Cada línea está precedida por un número de línea en hexadecimal y seguido por una representación ascii (o ebcdic). Los parámetros de la línea de comandos - r, - p, - i no funcionan con este modo. - c cols - cols cols formato lt cols gt octetos por línea. Predeterminado 16 (-i: 12, - ps: 30, - b: 6). Max 256. - E - EBCDIC Cambie la codificación de caracteres en la columna de la derecha de ASCII a EBCDIC. Esto no cambia la representación hexadecimal. La opción no tiene sentido en combinaciones con - r, - p o - i. - g bytes - groupsize bytes separan la salida de cada lt bytes gt bytes (dos caracteres hexadecimales o ocho bits-dígitos cada uno) por un espacio en blanco. Especifique - g 0 para suprimir agrupar. Lt Bytes gt toma como valor predeterminado 2 en modo normal y 1 en modo bits. El agrupamiento no se aplica al estilo postscript o include. - h - help imprime un resumen de los comandos disponibles y sale. No se realiza ningún dumping hexadecimal. - i - include la salida en el estilo de archivo C include. Se escribe una definición de matriz estática completa (nombrada después del archivo de entrada), a menos que xxd lea desde stdin. - L len-len stop después de escribir lt len gt octetos. - p - ps - postscript - plain output en estilo postscript continuo hexdump. También conocido como estilo hexdump plano. - r - revert operación inversa: convertir (o parche) hexdump en binario. Si no escribe en stdout, xxd escribe en su archivo de salida sin truncarlo. Utilice la combinación - r - p para leer volcados hexadecimales llanos sin información de número de línea y sin un diseño de columna particular. Se permiten espacios en blanco y saltos de línea adicionales en cualquier lugar. - seek offset Cuando se usa después de - r. Revertir con lt offset gt añadido a las posiciones de archivo que se encuentran en hexdump. - s - seek inicio en lt buscar gt bytes abs. (O rel.) Infile offset. Indica que la búsqueda es relativa a la posición actual del archivo stdin (sin sentido cuando no se lee desde stdin). - indica que la búsqueda debe ser que muchos caracteres desde el final de la entrada (o si se combina con. Antes de la posición actual del archivo stdin). Sin la opción - s, xxd comienza en la posición actual del archivo. - u utilizar letras hexadecimales en mayúsculas. El valor predeterminado es minúscula. - v - version mostrar la cadena de versiones. Advertencias xxd - r tiene algo de magia incorporada al evaluar la información del número de línea. Si el archivo de salida es buscable, entonces los números de línea al principio de cada línea de hexdump pueden estar fuera de servicio, pueden faltar líneas o superponerse. En estos casos xxd se lseek (2) a la siguiente posición. Si el archivo de salida no es buscable, sólo se permiten las brechas, que serán llenadas por null-bytes. Xxd - r nunca genera errores de análisis. La basura se omite silenciosamente. Al editar hexdumps, tenga en cuenta que xxd - r omite todo en la línea de entrada después de leer suficientes columnas de datos hexadecimales (consulte la opción - c). Esto también significa que los cambios en las columnas ascii imprimibles (o ebcdic) siempre se ignoran. Revertir un hexdump de estilo simple (o postscript) con xxd - r - p no depende del número correcto de columnas. Aquí se interpreta cualquier cosa que parezca un par de dígitos hexadecimales. Observe la diferencia entre xxd - i archivo y xxd - i lt archivo xxd - s buscar puede ser diferente de xxd - s buscar. Como lseek (2) se utiliza para rebobinar la entrada. A hace una diferencia si la fuente de entrada es stdin, y si la posición del archivo stdins no está al principio del archivo en el momento en que xxd se inicia y recibe su entrada. Los siguientes ejemplos pueden ayudar a aclarar (o confundir más). Rebobinar stdin antes de leer necesario porque el gato ya ha leído hasta el final de stdin. Sh - c gt gt plaincopy xxd - s 0 gt hexcopy lt archivo Hexdump de la posición de archivo 0x480 (1024128) en adelante. El signo significa relativo a la posición actual, por lo que el 128 se suma al 1k donde dd se detuvo. Sh - c dd ofplainsnippet bs1k cuenta1 xxd - s 128 gt hexsnippet lt archivo Hexdump desde la posición de archivo 0x100 (1024-768) en. Sh - c dd ofplainsnippet bs1k count1 xxd - s -768 gt hexsnippet archivo lt Sin embargo, esta es una situación rara y el uso de rara vez es necesario. El autor prefiere monitorear el efecto de xxd con strace (1) o truss (1). Siempre que se use - s. Ejemplos Imprima todo excepto las tres primeras líneas (hex 0x30 bytes) del archivo. Xxd - s archivo 0x30 Imprimir 3 líneas (hex 0x30 bytes) desde el final del archivo. Xxd - s -0x30 archivo Imprimir 120 bytes como hexdump continuo con 20 octetos por línea. xxd - l 120 - ps-C20 xxd.1 2e54482058584420312022417567757374203139 39362220224d616e75616c207061676520666f72 20787864220a2e5c220a2e5c222032317374204d 617920313939360a2e5c22204d616e2070616765 20617574686f723a0a2e5c2220202020546f6e79 204e7567656e74203c746f6e79407363746e7567 Hexdump los primeros 120 bytes de esta página de manual con 12 octetos por línea. Xxd - l 120 - c 12 xxd.1 0000000: 2e54 4820 5858 4420 3120 2241.TH XXD 1 A 000000c: 7567 7573 7420 3139 3936 2220 ugust 1996 0000018: 224d 616e 7561 6c20 7061 6765 Manual página 0000024: 2066 6f72 2078 7864 220a 2e5c para xxd .. 0000030: 220a 2e5c 2220 3231 7374 204d .. 21ª M 000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996 .. 0000048: 4d61 6e20 7061 6765 2061 7574 Man página aut 0000054: 686f 723a 0a2e 5c22 2020 2020 hor. 0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent 000006c: 3c74 6f6e 7940 7363 746e 7567 lttonysctnug Mostrar sólo la fecha del archivo xxd.1 xxd - s 0x36 - l 13 - c 13 xxd.1 0000036: 3231 7374 204d 6179 2031 3939 36 21 de mayo de 1996 Copie el archivo de entrada en el archivo de salida y agregue 100 bytes de valor 0x00. Xxd archivo de entrada xxd - r - s 100 gt archivo de salida Patch la fecha en el archivo xxd.1 echo 0000037: 3574 68 xxd - r - xxd.1 xxd - s 0x36 - l 13 - c 13 xxd.1 0000036: 3235 7468 204d 6179 2031 3939 36 25 de mayo de 1996 Cree un archivo de 65537 bytes con todos los bytes 0x00, excepto el último que es A (hexadecimal 0x41). Echo 010000: 41 xxd - r gt archivo Hexdump este archivo con autoskip. Xxd - a - c 12 archivo 0000000: 0000 0000 0000 0000 0000 0000. 000fffc: 0000 0000 40. A Cree un archivo de 1 byte que contenga un solo carácter A. El número después de - r - s agrega a los números de teléfono encontrados en el archivo en efecto, los bytes principales se suprimen. Echo 010000: 41 xxd - r - s -0x10000 gt file Utilice xxd como filtro dentro de un editor como vim (1) para hexdump una región marcada entre a y z. : A, zxxd Utilice xxd como filtro dentro de un editor como vim (1) para recuperar un hexdump binario marcado entre ay z. : A, zxxd - r Utiliza xxd como filtro dentro de un editor como vim (1) para recuperar una línea de un hexdump. Mueva el cursor sobre la línea y escriba: xxd - r Lee los caracteres individuales de una línea serie xxd - c1 lt / dev / term / b stty lt / dev / term / b - echo - opost - isig - icanon min 1 echo - N foo gt / dev / term / b Valores de retorno Se devuelven los siguientes valores de error: no se han encontrado errores. -1 operación no es compatible (xxd - r - i sigue siendo imposible). Error al analizar opciones. Problemas con el archivo de entrada. Problemas con el archivo de salida. 4,5 la posición de búsqueda deseada es inalcanzable. Vea también Advertencias La rareza de las herramientas coincide con el cerebro de sus creadores. Utilizarlo totalmente bajo su propio riesgo. Copiar archivos. Rastrearla. Conviértete en un mago. Versión Este manual página documentos xxd versión 1.7 Autor Distribuir libremente y crédito me, ganar dinero y compartir conmigo, perder dinero y no me pregunte. Página manual iniciada por Tony Nugent lttonysctnugen. ppp. gu. edu. au gt ltT. Nugentsct. gu. edu. au gt Pequeños cambios de Bram Moolenaar. Editado por Juergen Weigert. Referido ByLinux Pocket Guide, 2nd Edition Sinopsis Semejante a od. Xxd produce un volcado hexadecimal o binario de un archivo en varios formatos diferentes. También puede hacer lo contrario, convirtiendo desde su formato de volcado hexadecimal de nuevo en los datos originales. Por ejemplo, heres un volcado hexadecimal del archivo binario / usr / bin / who: La columna de la izquierda indica el desplazamiento del archivo de la fila, las siguientes ocho columnas contienen los datos y la última columna muestra los caracteres imprimibles en la fila . De forma predeterminada, xxd emite tres columnas: los desplazamientos de archivo, los datos en hexadecimal y los datos como texto (sólo caracteres imprimibles). Opciones útiles
Comments
Post a Comment