google / google/bindiff

Running bindiff export does not result in `.BinExport` file being created

Open
#52 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.2k
Forks
240
PR merge metrics
No merged PRs in 30d

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](https://github.com/google/bindiff/blob/da4b78aa518aaa8558bcadcb873e5ed62322abca/ida/main_plugin.cc#L469-L473).

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**
1. 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 ./
```
2. Open binary in IDA and wait for initial analysis to complete
3. Save IDA database file and close IDA
4. Run bindiff export from the command line -- `/opt/bindiff/bin/bindiff --export directory/containing/envoy-binary/`
5. 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](https://github.com/google/bindiff/releases/tag/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.

![Screen Shot 2024-08-12 at 3 05 21 PM](https://github.com/user-attachments/assets/0e9bdbb9-4dfd-416c-aa07-873629151570)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.