BVI

Quick Tutorial


This tutorial will explain all commands which behaves different to vi. Note that, if you are on a Linux system, you will probably have an 'improved' version of vi. Bvi is more similar to the standard version.

The Screen

000000
00000C
000018
000024
000030
00003C
000048
000054
000060
00006C
000078
000084
000090
00009C
 7F 45 4C 46 01 01
 00 00 00 00 01 00
 00 00 00 00 00 00
 00 00 00 00 34 00
 0C 00 09 00 00 00
 00 00 00 00 55 89
 53 C7 45 A4 00 00
 00 00 00 83 7D 08
 8C 02 00 00 E9 6F
 00 00 00 00 6A 03
 45 08 50 E8 FC FF
 0C 85 D2 75 17 6A
 E9 43 02 00 00 8D
 0C 85 D2 75 0D C7
 01 00 00 00 00 00
 03 00 01 00 00 00
 00 00 0C 07 00 00
 00 00 00 00 28 00
 00 00 00 00 00 00
 E5 83 EC 68 57 56
 00 00 C7 45 A0 01
 00 75 13 6A 00 E8
 02 00 00 8D B4 26
 68 90 00 00 00 8B
 FF FF 89 C2 83 C4
 01 E8 60 02 00 00
 74 26 00 8D BC 27
 45 A0 00 00 00 00
 .ELF........
 ............
 ............
 ....4.....(.
 ............
 ....U....hWV
 S.E......E..
 ....}..u.j..
 .....o.....&
 ....j.h.....
 E.P.........
 ...u.j..`...
 .C....t&...'
 ...u..E.....
"set.o" 3500 bytes 000001 \105 0x45 69 'E'

The screen is divided into four areas, symbolized by four different colors (only on this page, bvi uses NO colors). The magenta area contents the addresses in hexadecimal notation. The green area contents the values of the edited file in hexadecimal notation. The red area contents the same bytes in ASCII representation. The yellow status line displays on the left side the current status messages and on the right site the current position of the cursor and the value of the byte on this address in octal, hexadecimal, decimal and ASCII notation.
You can toggle between the Hex and ASCII value of the same byte by pressing the TAB key both in command and input mode.

Command Line Options

There are some additional command line options in bvi:
-f script
This command provides a means for collecting a series of ex (colon) commands into a script file, then using this file to edit other files. Since there is no binary stream editor bsed, you can use this option to make several global changes in a binary file. You can do this of course with the source command (:so file) from within bvi too.
-s skip
This option causes bvi to load a file not from start but from offset skip.
-e end
This option causes bvi to load a file not till end but till address end.
-n length
This option causes bvi not to load the complete file but only length bytes. This option can also be used to read a file reported with a length 0 like some files in the Linux /proc directory.

skip, end or length can be an integer value (decimal or hexadecimal) or an integer value with an appended k (for multiply by 1024) or m (for multiply by 1.048.576).

You should use at most two of the three address options to avoid ambiguity!

Not yet implemented commands

Back to the top
Page updated: October 7th 2014 by Gerhard Bürgmann, Purkersdorf/Austria
Have a look at "Rallye Tuning"