Description
Describe the bug
I'm trying to diff an envoy file containing debug symbols against an optimized release image. I initially tried to diff them against each other through the IDA plugin window and received the "Exporting the secondary database failed." error.
After looking into the source a bit, I tried to run the /opt/bindiff/bin/bindiff
directly to isolate what the problem is. It appears that the .BinExport
files aren't being created by IDA. Please see my reproduction steps below and let me know if I can provide any more helpful context!
To Reproduce
- Download envoy v1.31.1
docker pull envoyproxy/envoy:v1.31-latest
container_sha=$(docker create envoyproxy/envoy:v1.31-latest)
docker cp ${container_sha}:/usr/local/bin/envoy ./
- Open binary in IDA and wait for initial analysis to complete
- Save IDA database file and close IDA
- Run bindiff export from the command line --
/opt/bindiff/bin/bindiff --export directory/containing/envoy-binary/
- See that no
.BinExport
file is created
Expected behavior
That a .BinExport
file is created and I'm able to diff a file with debug symbols and the optimized release.
Environment (please complete the following information):
- OS and version: Ubuntu 22 VM
- Locale: US English
- Disassembler and version: IDA Free 8.4
- Bindiff v8 -- installed
.deb
from release page
Additional context
I noticed that bindiff is running the following ida64 command. I tried running that directly on my machine and used opensnoop to track what files ida64 is writing. Attached below are the commands I ran and the output from opensnoop. The ~/.bindiff/logs/bindiff_idapro.log
file also doesn't contain much information.