Visual Binary Diff (VBinDiff) displays files in hexadecimal and ASCII (or EBCDIC). It can also display two files at once, and highlight the differences between them. Unlike diff, it works well with large files (up to 4 GB).
VBinDiff was inspired by the Compare Files function of the ProSel utilities by Glen Bredon, for the Apple II. When I couldn't find a similar utility for the PC, I wrote it myself.
The single-file mode was inspired by the LIST utility of 4DOS and friends. While less provides a good line-oriented display, it has no equivalent to LIST's hex display. (True, you can pipe the file through hexdump, but that's incredibly inefficient on multi-gigabyte files.)
This repository uses a submodule to pull in my Free GetOpt package, which makes it a bit trickier to get started with than the average Git repository. Here's how to get started.
- Clone this repository and
cd
into it. - Run
git submodule update --init
- There are two ways to build VBinDiff: using Autotools or using CMake
- Autotools:
- If you're working on a Unix system, run
autoreconf -i
- Now you're ready to use the normal
./configure && make
process on Unix, or openwin32/vbindiff.dsw
on Windows.
- If you're working on a Unix system, run
- CMake:
- Example usage on Unix-like systems (including Windows with MinGW):
Try also
mkdir build cd build cmake .. make
ccmake ..
orcmake-gui ..
in place ofcmake ..
above. - Windows / Visual Studio: See CMake support in Visual Studio or use the same approach as on Unix-like systems and then open the generated project file:
Now open the generated project file in Visual Studio. See cmake-generators(7) for the list of available generators / supported Visual Studio versions.
mkdir build cd build cmake -G "Visual Studio 15 2017 Win64" ..
- Example usage on Unix-like systems (including Windows with MinGW):
To build the documentation, you'll also need Perl, Date::Format, and Template-Toolkit. For Windows, I recommend Strawberry Perl, which comes with the necessary modules. On Unix, your distro may have packages, or you can install from CPAN. Package names for some distros are:
- Arch Linux:
perl perl-template-toolkit perl-timedate
- Gentoo Linux:
dev-lang/perl dev-perl/Template-Toolkit dev-perl/TimeDate
- Ubuntu:
perl libtemplate-perl libtimedate-perl
If you're developing on Unix, I suggest you also cp -a tools/post-commit .git/hooks/
. That hook will touch configure.ac
after each commit that modifies it, causing configure
to be regenerated and making AC_REVISION
reflect the new commit.
Visual Binary Diff is copyright 1995-2013 by Christopher J. Madsen
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.