Is there alternative to https://www.zynamics.com/bindiff.html that works for Linux x86_64 binaries, works on Linux, (and preferably does not require IDA Pro, however if needed it seems that IDA can run on Linux so it may be fine)?
Alternative to BinDiff that works on Linux x86_64 binaries (and preferably does not require IDA Pro)
2 Answers
VBinDiff at http://www.cjmweb.net/vbindiff/
Below is the same message as above. But with details if you're interested in those.
VBinDiff (Visual Binary Diff) code at https://github.com/madsen/vbindiff
VBinDiff displays files in hexadecimal and ASCII (or EBCDIC). It can also display two files at once, and highlight the differences between them.
VBinDiff is CLI only though (Command Line Interface)
As answered in similar questions, the only IDA-dependent part of BinDiff is the exporter.
Other than BinDiff or Diaphora (which might not meet your constraints), Quarkslab's qbindiff (at https://github.com/quarkslab/qbindiff) is pretty good on posix-y platforms. It supports emitting your results in either CSV or BinDiff's format (for viewing).
Its input, however, is either quokka (which is IDA-only) or BinExport (ghidra, binja, ida). I find quokka to be fairly decent (performance-wise) in terms of exporting, but BinExport might suffice if you're limited by not having IDA.
Once you have the databases exported, you can diff with qbindiff to get your results, and then render your results to something that is easy to process.
Something like the following, with $format
set to "bindiff" or "csv" should work for diffing. There are also options (listed in the help) to allow you to pick and choose the features you wish to use for matching.
$ python -m qbindiff -ff $format -o /path/to/results.$format -e1 /path/to/binary/1 -e2 /path/to/binary/2 /path/to/export/1 /path/to/export/2