Installing BinDiff + BinExport on IDA Pro 9.1 (Linux, No Tears Edition)
I wanted a simple thing:
- Open
ida64 - Export with BinExport
- Diff with BinDiff
- Not get yelled at by plugin loader logs
Instead, I got this:
1
2
/home/fury/.idapro/plugins/binexport12_ida.so: can't load file
BinExport 12 (@f2abe5a, Jul 4 2025), (c)2004-2011 zynamics GmbH, (c)2011-2025 Google LLC
Classic Linux RE setup moment.
TL;DR fix
For IDA Pro 9.1 on Linux, use the 64-bit plugin only:
- keep
binexport12_ida64.so - remove
binexport12_ida.so(32-bit)
If binexport12_ida.so is present, IDA may try to load it and print noise/failures even though the 64-bit one is fine.
My environment
- OS: Kali Linux
- IDA:
IDA Pro 9.1 - IDA path:
/home/fury/ida-pro-9.1 - User plugin path:
/home/fury/.idapro/plugins - BinDiff package:
bindiff_8_amd64.deb
If your IDA is elsewhere, just swap paths in commands below.
1) Install BinDiff
1
2
3
cd ~/Downloads
sudo apt install -y ./bindiff_8_amd64.deb
bindiff --version
Expected:
1
BinDiff 8 ...
If bindiff --version works, package install is good.
2) Install BinExport plugin for IDA
I used the Linux zip from BinExport releases and copied the IDA plugin to both plugin paths:
1
2
3
unzip -o ~/Downloads/BinExport-Linux.zip -d /tmp/binexport_linux
cp -f /tmp/binexport_linux/ida/binexport12_ida64.so /home/fury/ida-pro-9.1/plugins/
cp -f /tmp/binexport_linux/ida/binexport12_ida64.so /home/fury/.idapro/plugins/
You can check:
1
2
ls -la /home/fury/ida-pro-9.1/plugins | rg binexport12_ida
ls -la /home/fury/.idapro/plugins | rg binexport12_ida
3) The important cleanup (this is where most pain comes from)
Remove the 32-bit plugin file:
1
2
rm -f /home/fury/ida-pro-9.1/plugins/binexport12_ida.so
rm -f /home/fury/.idapro/plugins/binexport12_ida.so
Then verify only ida64 remains:
1
2
ls -la /home/fury/ida-pro-9.1/plugins | rg binexport12_ida
ls -la /home/fury/.idapro/plugins | rg binexport12_ida
Expected output should show only binexport12_ida64.so.
4) Launch IDA the right way
Use ida64, not ida.
Inside IDA:
- Open any sample binary
Edit -> Plugins- Confirm
BinExport 12is present - Run BinExport once to confirm export dialog appears
If that works, you are done.
What tripped me up
- I had both
binexport12_ida.soandbinexport12_ida64.so. - IDA reported a load error for
binexport12_ida.so, which looked scary, but the 64-bit plugin was actually fine.
The fix was not “rebuild everything from source”.
The fix was: clean plugin directory and keep only the correct architecture plugin.
Quick sanity checklist
1
2
3
4
5
6
7
8
# 1) BinDiff installed?
bindiff --version
# 2) Right plugin exists?
ls -l /home/fury/.idapro/plugins/binexport12_ida64.so
# 3) Wrong plugin removed?
ls -l /home/fury/.idapro/plugins/binexport12_ida.so
For #3, “No such file or directory” is a feature, not a bug.
Final note
If IDA plugin loading ever gets weird, 80% of the time it is one of these:
- wrong architecture (
ida.sovsida64.so) - duplicate plugin copies in multiple plugin paths
- old symlink leftovers from previous installs
Clean paths, keep one correct plugin, launch ida64, move on with life.

