Skip to content

mkoloberdin/vbindiff

 
 

Repository files navigation

VBinDiff - Visual Binary Diff

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.)

Working with This Repository

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.

  1. Clone this repository and cd into it.
  2. Run git submodule update --init
  3. 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 open win32/vbindiff.dsw on Windows.
  • CMake:
    • Example usage on Unix-like systems (including Windows with MinGW):
      mkdir build
      cd build
      cmake ..
      make
      
      Try also ccmake .. or cmake-gui .. in place of cmake .. 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:
      mkdir build
      cd build
      cmake -G "Visual Studio 15 2017 Win64" ..
      
      Now open the generated project file in Visual Studio. See cmake-generators(7) for the list of available generators / supported Visual Studio versions.

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.

Copyright and License

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.

About

Visual Binary Diff (VBinDiff) displays files in hex & ASCII and can highlight the differences between 2 files

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 74.8%
  • C 9.3%
  • Perl 7.4%
  • CMake 2.5%
  • Makefile 1.8%
  • M4 1.4%
  • Other 2.8%