xxd
Ito ang command xxd na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
xxd - gumawa ng hexdump o gawin ang reverse.
SINOPSIS
xxd -h[help]
xxd [mga opsyon] [infile [outfile]]
xxd -r[evert] [mga opsyon] [infile [outfile]]
DESCRIPTION
xxd lumilikha ng hex dump ng isang naibigay na file o karaniwang input. Maaari rin itong mag-convert ng hex dump
bumalik sa orihinal nitong binary form. Gusto uuencode(1) at uudecode(1) pinapayagan nito ang
paghahatid ng binary data sa isang `mail-safe' na representasyon ng ASCII, ngunit may kalamangan
ng pag-decode sa karaniwang output. Bukod dito, maaari itong magamit upang magsagawa ng binary file patching.
Opsyon
Kung hindi infile ay ibinigay, karaniwang input ay basahin. Kung infile ay tinukoy bilang isang `-' karakter,
pagkatapos ay ang input ay kinuha mula sa karaniwang input. Kung hindi outfile ay ibinigay (o isang `-' ang karakter ay nasa
lugar nito), ang mga resulta ay ipinadala sa karaniwang output.
Tandaan na ang isang "tamad" na parser ay ginagamit na hindi tumitingin ng higit sa unang opsyon
sulat, maliban kung ang opsyon ay sinusundan ng isang parameter. Mga puwang sa pagitan ng iisang opsyon
Ang titik at ang parameter nito ay opsyonal. Ang mga parameter sa mga opsyon ay maaaring tukuyin sa decimal,
hexadecimal o octal notation. Sa gayon -c8, -c 8, -c 010 at -cols 8 lahat ay katumbas.
-a | -autoskip
i-toggle ang autoskip: Pinapalitan ng isang '*' ang mga nul-lines. Naka-off ang default.
-b | -mga piraso
Lumipat sa bits (binary digits) dump, sa halip na hexdump. Nagsusulat ang pagpipiliang ito
octets bilang walong digit na "1" at "0" sa halip na isang normal na hexadecimal dump. Bawat isa
Ang linya ay pinangungunahan ng isang numero ng linya sa hexadecimal at sinusundan ng isang ascii (o
ebcdic) na representasyon. Ang command line ay lumipat -r, -p, -i hindi gumagana dito
mode.
-c kwelyo | -cols kwelyo
pormatkwelyo> octets bawat linya. Default 16 (-i: 12, -ps: 30, -b: 6). Max 256.
-E | -EBCDIC
Baguhin ang pag-encode ng character sa kanang hanay mula sa ASCII patungong EBCDIC. Ito
hindi binabago ang hexadecimal na representasyon. Ang pagpipilian ay walang kahulugan sa
mga kumbinasyon na may -r, -p o -i.
-e Lumipat sa little-endian hexdump. Itinuturing ng opsyong ito ang mga byte group bilang mga salita sa
little-endian byte order. Ang default na pagpapangkat ng 4 na byte ay maaaring baguhin gamit ang -g.
Nalalapat lang ang opsyong ito sa hexdump, na iniiwan ang representasyon ng ASCII (o EBCDIC).
hindi nagbabago. Ang command line ay lumipat -r, -p, -i hindi gumagana sa mode na ito.
-g bytes | -grupo bytes
paghiwalayin ang output ng bawatbytes> bytes (dalawang hex na character o walong bit-digit
bawat isa) sa pamamagitan ng isang whitespace. Tukuyin -g 0 upang sugpuin ang pagpapangkat.Bytes> default sa 2
sa normal na mode, 4 sa little-endian mode at 1 sa bits mode. Ang pagpapangkat ay hindi
ilapat sa pahabol o isama ang istilo.
-h | -tulong
mag-print ng buod ng mga magagamit na command at lumabas. Walang ginagawang hex dumping.
-i | -isama
ang output sa C ay kasama ang estilo ng file. Ang isang kumpletong static na kahulugan ng array ay nakasulat
(pinangalanan pagkatapos ng input file), maliban kung ang xxd ay nagbabasa mula sa stdin.
-l Len | -len Len
huminto pagkatapos magsulatLen> octets.
-o ginalaw
idagdagginalaw> sa ipinapakitang posisyon ng file.
-p | -ps | -pahabol | - payak
output sa pahabol na tuloy-tuloy na istilong hexdump. Kilala rin bilang plain hexdump style.
-r | -balikan
reverse operation: i-convert (o patch) ang hexdump sa binary. Kung hindi sumusulat sa
stdout, nagsusulat ang xxd sa output file nito nang hindi pinuputol ito. Gamitin ang kumbinasyon
-r -p para basahin ang mga plain hexadecimal dumps na walang impormasyon sa numero ng linya at walang a
partikular na layout ng column. Pinapayagan ang mga karagdagang Whitespace at line-break
kahit saan.
-Maghanap ginalaw
Kapag ginamit pagkatapos -r: ibalik saginalaw> idinagdag sa mga posisyon ng file na makikita sa hexdump.
-s [+][-]maghanap
Magsimula samaghanap> bytes abs. (o rel.) infile offset. + ay nagpapahiwatig na ang hinahanap ay
nauugnay sa kasalukuyang posisyon ng stdin file (walang kabuluhan kapag hindi nagbabasa mula sa
stdin). - ay nagpapahiwatig na ang paghahanap ay dapat na kasing dami ng mga character mula sa dulo ng
ang input (o kung pinagsama sa +: bago ang kasalukuyang posisyon ng stdin file). Kung wala
-s opsyon, ang xxd ay nagsisimula sa kasalukuyang posisyon ng file.
-u gumamit ng malalaking letrang hex. Ang default ay lower case.
-v | -version
ipakita ang string ng bersyon.
MGA CAVEATS
xxd -r ay may ilang builtin na magic habang sinusuri ang impormasyon ng numero ng linya. Kung ang output
Ang file ay mahahanap, kung gayon ang mga linenumber sa simula ng bawat linya ng hexdump ay maaaring wala na
pagkakasunud-sunod, maaaring nawawala ang mga linya, o magkakapatong. Sa mga kasong ito, gagawin ng xxd hanapin ko(2) sa susunod
posisyon. Kung ang output file ay hindi mahahanap, ang mga puwang lamang ang pinapayagan, na pupunan
sa pamamagitan ng null-bytes.
xxd -r hindi kailanman bumubuo ng mga error sa pag-parse. Ang mga basura ay tahimik na nilalampasan.
Kapag nag-e-edit ng hexdumps, pakitandaan iyon xxd -r nilalaktawan ang lahat sa linya ng input pagkatapos
pagbabasa ng sapat na mga column ng hexadecimal data (tingnan ang opsyon -c). Ibig sabihin din nito, nagbabago iyon
sa mga napi-print na ascii (o ebcdic) na mga column ay palaging binabalewala. Pagbabalik ng kapatagan (o
postscript) style hexdump na may xxd -r -p ay hindi nakadepende sa tamang bilang ng mga column.
Dito binibigyang-kahulugan ang anumang bagay na mukhang isang pares ng hex-digit.
Pansinin ang pagkakaiba sa pagitan ng
% xxd -i file
at
% xxd -i < file
xxd -s +maghanap maaaring iba sa xxd -s maghanapAng hanapin ko(2) ay ginagamit upang "i-rewind" ang input. A
Ang '+' ay gumagawa ng pagkakaiba kung ang input source ay stdin, at kung ang posisyon ng file ng stdin ay hindi
sa simula ng file sa oras na magsimula ang xxd at ibinigay ang input nito. Ang mga sumusunod
ang mga halimbawa ay maaaring makatulong upang linawin (o higit pang malito!)...
I-rewind ang stdin bago basahin; kailangan dahil nabasa na ng `cat' hanggang sa dulo ng
stdin.
% sh -c "pusa > plain_copy; xxd -s 0 > hex_copy" < file
Hexdump mula sa posisyon ng file 0x480 (=1024+128) pataas. Ang `+' sign ay nangangahulugang "kamag-anak sa
kasalukuyang posisyon", kaya ang `128' ay nagdaragdag sa 1k kung saan huminto si dd.
% sh -c "DD ng=plain_snippet bs=1k bilang=1; xxd -s + 128 > hex_snippet" < file
Hexdump mula sa posisyon ng file 0x100 ( = 1024-768) naka-on.
% sh -c "DD ng=plain_snippet bs=1k bilang=1; xxd -s + -768 > hex_snippet" < file
Gayunpaman, ito ay isang bihirang sitwasyon at ang paggamit ng `+' ay bihirang kailanganin. Mas gusto ng may-akda
upang subaybayan ang epekto ng xxd sa bakas(1) o salo(1), tuwing ginagamit ang -s.
HALIMBAWA
I-print ang lahat maliban sa unang tatlong linya (hex 0x30 bytes) ng file.
% xxd -s 0x30 file
Mag-print ng 3 linya (hex 0x30 bytes) mula sa dulo ng file.
% xxd -s -0x30 file
Mag-print ng 120 byte bilang tuluy-tuloy na hexdump na may 20 octets bawat linya.
% xxd -l 120 -ps -c 20 xxd.1
2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
20787864220a2e5c220a2e5c222032317374204d
617920313939360a2e5c22204d616e2070616765
20617574686f723a0a2e5c2220202020546f6e79
204e7567656e74203c746f6e79407363746e7567
Hexdump ang unang 120 byte ng man page na ito na may 12 octets bawat linya.
% 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 "Manu-manong pahina
0000024: 2066 6f72 2078 7864 220a 2e5c para sa xxd"..\
0000030: 220a 2e5c 2220 3231 7374 204d "..\" ika-21 M
000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\"
0000048: 4d61 6e20 7061 6765 2061 7574 Man page 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
Ipakita lamang ang petsa mula sa file na xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3231 7374 204d 6179 2031 3939 36 ika-21 ng Mayo 1996
Kopyahin input_file sa output_file at prepend 100 bytes ng halaga 0x00.
% xxd input_file | xxd -r -s 100 > output_file
Patch ang petsa sa file xxd.1
% miss "0000037: 3574 68 " | xxd -r - xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3235 7468 204d 6179 2031 3939 36 ika-25 ng Mayo 1996
Gumawa ng 65537 byte file na may lahat ng byte na 0x00, maliban sa huli na 'A' (hex
0x41).
% miss "010000: 41 " | xxd -r > file
Hexdump ang file na ito gamit ang autoskip.
% xxd -a -c 12 file
0000000: 0000 0000 0000 0000 0000 0000 ............
*
000fffc: 0000 0000 40 ....A
Gumawa ng 1 byte file na naglalaman ng isang character na 'A'. Ang numero pagkatapos ng '-r -s' ay nagdaragdag sa
ang mga linenumber na matatagpuan sa file; sa epekto, ang mga nangungunang byte ay pinigilan.
% miss "010000: 41 " | xxd -r -s -0x10000 > file
Gamitin ang xxd bilang isang filter sa loob ng isang editor tulad ng kalakasan(1) para hexdump ang isang rehiyon na minarkahan sa pagitan ng `a'
at `z'.
:'a,'z!xxd
Gamitin ang xxd bilang isang filter sa loob ng isang editor tulad ng kalakasan(1) para mabawi ang binary hexdump na minarkahan
sa pagitan ng `a' at `z'.
:'a,'z!xxd -r
Gamitin ang xxd bilang isang filter sa loob ng isang editor tulad ng kalakasan(1) upang mabawi ang isang linya ng isang hexdump.
Ilipat ang cursor sa linya at i-type ang:
!!xxd -r
Magbasa ng mga solong character mula sa isang serial line
% xxd -c1 < /dev/term/b &
% stty < /dev/term/b -echo -opost -isig -icanon minuto 1
% miss -n foo > /dev/term/b
RETURN Mga halaga
Ang mga sumusunod na halaga ng error ay ibinalik:
0 walang naranasan na mga error.
-1 operasyon ay hindi suportado ( xxd -r -i imposible pa rin).
1 error habang nag-parse ng mga opsyon.
2 mga problema sa input file.
3 mga problema sa output file.
Ang 4,5 na gustong posisyon sa paghahanap ay hindi maabot.
Gamitin ang xxd online gamit ang mga serbisyo ng onworks.net