aboutsummaryrefslogblamecommitdiffhomepage
path: root/binary.txt
blob: 37bcc0691da2b21c80874234fdbb5c4a73abab70 (plain) (tree)
1
2
3
4
5
6
7
8
9
        

                                                                                




       
                                                                                






                                                   

                                                                
 
                              



                                    
                                       



                                  














                                                                                             
                                                                                















                                                      
                                                    










                                                                                
                                      
 
# binary
--------------------------------------------------------------------------------

# toc
------
  |od|
  |xxd|

# od(1)                                                                     *od*
========
  args:
    -An         don't print addr info
    -tx4        print hex in 4 byte chunks
    -ta         print as named character
    -tc         printable chars or backslash escape
    -w4         print 4 bytes per line
    -j <n>      skip <n> bytes from file, (hex if start with 0x)
    -N <n>      dump <n> bytes (hex of start with 0x)

  ## ascii chars to hex string
  echo -n AAAABBBB | od -An -w4 -tx4
    >> 41414141
    >> 42424242

  echo -n '\x7fELF\n' | od -tx1 -ta -tc
    >> 0000000  7f  45  4c  46  0a
    >>         del   E   L   F  nl
    >>         177   E   L   F  \n

  ## extract part of file (eg .rodata section form ELF)
  readelf -W -S foo
    >> Section Headers:
    >> [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
    >> ...
    >> [15] .rodata           PROGBITS        00000000004009c0 0009c0 000030 00   A  0   0 16
  od -j 0x0009c0 -N 0x30 -tx4 -w4 foo
    >> 0004700 00020001
    >> 0004704 00000000
    >> *
    >> 0004740 00000001
    >> 0004744 00000002
    >> 0004750 00000003
    >> 0004754 00000004

# xxd(1)                                                                   *xxd*
=========
  args:
    -p          dump continuous hexdump
    -r          convert hexdump into binary ('revert')
    -e          dump as little endian mode
    -i          output as C array

  ## from ascii to hex stream
  echo -n 'aabb' | xxd -p
    >> 61616262

  ## from hex to binary stream
  echo -n '61616262' | xxd -p -r
    >> aabb

  ## ascii to binary
  echo -n '\x7fELF' | xxd -p | xxd -r -p | file -p -
    >> ELF

  ## ascii to C array (hex encoded)
  xxd -i <(echo -n '\x7fELF')
    >> unsigned char _proc_self_fd_11[] = {
    >>   0x7f, 0x45, 0x4c, 0x46
    >> };
    >> unsigned int _proc_self_fd_11_len = 4;


--------------------------------------------------------------------------------
vim:ft=help:sts=2:et:tw=80:cc=80:fo+=t