bindiff icon indicating copy to clipboard operation
bindiff copied to clipboard

support IDA version 9.0

Open zhefox opened this issue 1 year ago • 36 comments

Is your feature request related to a problem? Please describe. support IDA version 9.0

zhefox avatar Aug 12 '24 06:08 zhefox

Yes! This needs to be done. I was on vacation last week, but will request the beta version today :)

cblichmann avatar Aug 12 '24 07:08 cblichmann

You rock man!

steph3nsims avatar Aug 16 '24 18:08 steph3nsims

Any updates on this? I've been waiting a while for this to release, I'm pretty sure someone has already made an update but changes haven't been merged, I cant build the project currently lol.

BruhRain avatar Oct 07 '24 17:10 BruhRain

I am super sorry about this, but I don't really have the cycles for this at the moment (see my "rant" at https://x.com/AdmVonSchneider/status/1841261692728037445).

Note that as a workaround, you can use the BinExport PR mentioned in the thread (https://github.com/google/binexport/pull/133) to build a binexport64.so that works with IDA 9.0 and then use a workflow similar to the one for Ghidra/Binary Ninja:

  • Export primary and secondary database first (e.g. into a.BinExport and b.BinExport)
  • Run bindiff a.BinExport b.BinExport
  • Using the BinDiff UI, open a vs. b.BinDiff

cblichmann avatar Oct 07 '24 17:10 cblichmann

Thanks, i'll try this out

BruhRain avatar Oct 07 '24 17:10 BruhRain

#51 Compile and obtain Or if there is already a version compiled by others in other repositories, you can download it directly.

zhefox avatar Oct 08 '24 06:10 zhefox

Hi,would it be possible for you to release a package so that we can install and use it conveniently? We would be extremely grateful.

As a novice, I have installed BinDiff using BinDiff8.dmg. However, if there is no new release package, I don't know how to ensure compatibility. Currently, there is no BinExport in my IDA9 - Edit - Plugins.

Jacky-LinPeng avatar Oct 08 '24 11:10 Jacky-LinPeng

For various reasons I can't currently provide release packages. We'll also need to fix the Windows builds here on GitHub (protobuf linking against the wrong std lib) first.

cblichmann avatar Oct 08 '24 11:10 cblichmann

tomorrow

| | ZHEFOX | | @.*** | ---- Replied Message ---- | From | @.> | | Date | 10/08/2024 19:42 | | To | google/bindiff @.> | | Cc | ZheFox @.>, State @.> | | Subject | Re: [google/bindiff] support IDA version 9.0 (Issue #50) |

Hello, can you release a release package for us to install and use? Thank you very much

I am new, I have already installed BinDiff using BinDiff8.dmg, if no new release package is published, I do not know how to be compatible, my IDA9-Edit-Plugins do not have BinExport

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you modified the open/close state.Message ID: @.***>

zhefox avatar Oct 08 '24 11:10 zhefox

Hi,would it be possible for you to release a package so that we can install and use it conveniently? We would be extremely grateful.

As a novice, I have installed BinDiff using BinDiff8.dmg. However, if there is no new release package, I don't know how to ensure compatibility. Currently, there is no BinExport in my IDA9 - Edit - Plugins.

https://github.com/zhefox/Bindiff_for_IDA9.0

zhefox avatar Oct 09 '24 07:10 zhefox

Just replace the original file,for example, mine is in the directory: C:\Users\xxx\AppData\Roaming\Hex-Rays\IDA Pro\plugins\

zhefox avatar Oct 09 '24 08:10 zhefox

Hi,would it be possible for you to release a package so that we can install and use it conveniently? We would be extremely grateful. As a novice, I have installed BinDiff using BinDiff8.dmg. However, if there is no new release package, I don't know how to ensure compatibility. Currently, there is no BinExport in my IDA9 - Edit - Plugins.

https://github.com/zhefox/Bindiff_for_IDA9.0

Thank you so much! However, I am using the Mac system. It seems that it needs to be compiled into a dynamic link library. For instance, bindiff7_ida64.dylib. Would it be convenient for you to compile a version that supports the Mac system? I believe there are also many Mac users who would find it useful.

Image

Jacky-LinPeng avatar Oct 09 '24 09:10 Jacky-LinPeng

Hi,would it be possible for you to release a package so that we can install and use it conveniently? We would be extremely grateful. As a novice, I have installed BinDiff using BinDiff8.dmg. However, if there is no new release package, I don't know how to ensure compatibility. Currently, there is no BinExport in my IDA9 - Edit - Plugins.

https://github.com/zhefox/Bindiff_for_IDA9.0

Thank you so much! However, I am using the Mac system. It seems that it needs to be compiled into a dynamic link library. For instance, bindiff7_ida64.dylib. Would it be convenient for you to compile a version that supports the Mac system? I believe there are also many Mac users who would find it useful.

Image

https://bbs.kanxue.com/thread-283322.htm You can download it here

zhefox avatar Oct 09 '24 09:10 zhefox

Hi,would it be possible for you to release a package so that we can install and use it conveniently? We would be extremely grateful. As a novice, I have installed BinDiff using BinDiff8.dmg. However, if there is no new release package, I don't know how to ensure compatibility. Currently, there is no BinExport in my IDA9 - Edit - Plugins.

https://github.com/zhefox/Bindiff_for_IDA9.0

Thank you so much! However, I am using the Mac system. It seems that it needs to be compiled into a dynamic link library. For instance, bindiff7_ida64.dylib. Would it be convenient for you to compile a version that supports the Mac system? I believe there are also many Mac users who would find it useful. Image

https://bbs.kanxue.com/thread-283322.htm You can download it here

Thank you so much

Jacky-LinPeng avatar Oct 09 '24 11:10 Jacky-LinPeng

We still go this issue to deal with that I got notified about:

This also requires additional changes to idb_exporter.cc in BinExport which is also used by BinDiff. BinDiff calls IDA to perform export of secondary database, and IDA name is kinda hardcoded to be ida.exe for 32bit and ida64.exe for 64bit. And this is not correct anymore for IDA 9 where there is no such thing as 32bit IDA, and 64bit is called ida.exe now. So exporting of the secondary database fails (tries to call nonexistent ida64.exe), and because of this diffing fails as well.

cblichmann avatar Oct 28 '24 13:10 cblichmann

Hello, is it possible to publish a version for linux ? I tried to use plugin from here: https://github.com/google/binexport/actions/runs/11632778168 but I still get a error: /plugins/binexport12_ida.so: undefined symbol: root_node /plugins/binexport12_ida.so: can't load file

XZVB12 avatar Nov 04 '24 20:11 XZVB12

Some guy made a PR to fix this here: https://github.com/google/bindiff/pull/51

nicolaipre avatar Nov 14 '24 22:11 nicolaipre

Here is my IDA 9.0.240925 port (no backward compatibility, pre-built binaries for all platforms). This probably won't get merged but it's good enough to get by for now.

Check actions or the releases section for binaries or build yourself

https://github.com/cs2-analysis/binexport https://github.com/cs2-analysis/bindiff

dumbasPL avatar Nov 21 '24 16:11 dumbasPL

Here is my IDA 9.0.240925 port (no backward compatibility, pre-built binaries for all platforms). This probably won't get merged but it's good enough to get by for now.

Check actions or the releases section for binaries or build yourself

https://github.com/cs2-analysis/binexport https://github.com/cs2-analysis/bindiff

Can someone please explain where to place the files from the above links?

I don't have these folder under bindiff installation: where exactly do i place each file?

karpiyon avatar Nov 30 '24 13:11 karpiyon

Can someone please explain where to place the files from the above links?

I don't have these folder under bindiff installation: where exactly do i place each file?

The folder structure is indeed different, that's what comes out of the build, but all the file names are the same. Use the search function and replace files with the same names. If your IDA plugins aren't linked to the bindiff install dir you will also need to replace them manually.

Just replacing the IDA plugins should be enough if you only want to use it from IDA. The only thing that changed in the other binaries is how it finds ida, but if you start from ida it shouldn't matter AFAIK.

Here is the Arch Linux example (paths relative to the install directory should be identical on all platforms I think): https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bindiff-ida9-bin

dumbasPL avatar Dec 01 '24 13:12 dumbasPL

Can someone please explain where to place the files from the above links? I don't have these folder under bindiff installation: where exactly do i place each file?

The folder structure is indeed different, that's what comes out of the build, but all the file names are the same. Use the search function and replace files with the same names. If your IDA plugins aren't linked to the bindiff install dir you will also need to replace them manually.

Just replacing the IDA plugins should be enough if you only want to use it from IDA. The only thing that changed in the other binaries is how it finds ida, but if you start from ida it shouldn't matter AFAIK.

Here is the Arch Linux example (paths relative to the install directory should be identical on all platforms I think): https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bindiff-ida9-bin

Working well on my end. Any chnage this would be implemented in teh official release as well?

karpiyon avatar Dec 01 '24 17:12 karpiyon

Any chnage this would be implemented in teh official release as well?

Probably not, at least not in that state. The ArchLinux build is downloading binary packages, too, which is probably also not what that project wants (but I don't know enough about ArchLinux).

The main problem I have is that it's hard to support multiple versions of the IDA Pro SDK internally. That's one reason we don't have BinDiff for IDA 9 yet. Another is that I disagree with the new subscription model and am hesitant to move to IDA 9 exclusively for that reason.

cblichmann avatar Dec 02 '24 09:12 cblichmann

Here is my IDA 9.0.240925 port (no backward compatibility, pre-built binaries for all platforms). This probably won't get merged but it's good enough to get by for now.

Check actions or the releases section for binaries or build yourself

https://github.com/cs2-analysis/binexport https://github.com/cs2-analysis/bindiff

Can u tell me how i can use it? Im beginner and don't know much about it

programmer0990 avatar Dec 22 '24 19:12 programmer0990

Can u tell me how i can use it? Im beginner and don't know much about it

Install the original bindiff and replace the installed binaries with new ones from the new build (the file structure isn't the same, but the filenames are). Remember that ida 9 only has the 64-bit version, but the new plugin filename doesn't have the 64 suffix. You didn't tell me what platform you're on so can't give you specifics.

dumbasPL avatar Dec 22 '24 20:12 dumbasPL

Can u tell me how i can use it? Im beginner and don't know much about it

Install the original bindiff and replace the installed binaries with new ones from the new build (the file structure isn't the same, but the filenames are). Remember that ida 9 only has the 64-bit version, but the new plugin filename doesn't have the 64 suffix. You didn't tell me what platform you're on so can't give you specifics.

Im using windows 10 64 bit

programmer0990 avatar Dec 22 '24 22:12 programmer0990

Can u tell me how i can use it? Im beginner and don't know much about it

Install the original bindiff and replace the installed binaries with new ones from the new build (the file structure isn't the same, but the filenames are). Remember that ida 9 only has the 64-bit version, but the new plugin filename doesn't have the 64 suffix. You didn't tell me what platform you're on so can't give you specifics.

Also ive already tried replacing files but still got error "please set the correct path in main settings"

programmer0990 avatar Dec 23 '24 06:12 programmer0990

Here is my IDA 9.0.240925 port (no backward compatibility, pre-built binaries for all platforms). This probably won't get merged but it's good enough to get by for now.

Check actions or the releases section for binaries or build yourself

https://github.com/cs2-analysis/binexport https://github.com/cs2-analysis/bindiff

Note that the mac pre-built binaries that you provide for ida folders are .so files and not dylib.

but I think that the artefacts available on that page contains the ida9 fixes? https://github.com/google/bindiff/actions/runs/11779036890

gondre avatar Jan 05 '25 09:01 gondre

Here is my IDA 9.0.240925 port (no backward compatibility, pre-built binaries for all platforms). This probably won't get merged but it's good enough to get by for now. Check actions or the releases section for binaries or build yourself https://github.com/cs2-analysis/binexport https://github.com/cs2-analysis/bindiff

Note that the mac pre-built binaries that you provide for ida folders are .so files and not dylib.

but I think that the artefacts available on that page contains the ida9 fixes? https://github.com/google/bindiff/actions/runs/11779036890

seems like the action only creates x86 dylibs 😩

blacktop avatar Jan 06 '25 19:01 blacktop

Can u tell me how i can use it? Im beginner and don't know much about it

Install the original bindiff and replace the installed binaries with new ones from the new build (the file structure isn't the same, but the filenames are). Remember that ida 9 only has the 64-bit version, but the new plugin filename doesn't have the 64 suffix. You didn't tell me what platform you're on so can't give you specifics.

Also ive already tried replacing files but still got error "please set the correct path in main settings"

also getting this issue, the provided binaries don't seem to work

bendwv avatar Jan 21 '25 02:01 bendwv

Here's how I got it to build on Linux:

  • Download 9.0 SP1 SDK from HR download center
  • Build BinExport
    • git clone https://github.com/google/binexport
    • cd binexport
    • mkdir third_party
    • unzip -q ~dl/idasdk90sp1.zip -d third_party
    • mv third_party/idasdk{90,}
    • cp third_party/idasdk/lib/x64_linux_gcc_64/libida{,64}.so
    • cp third_party/idasdk/lib/x64_linux_gcc_{64,32}/libida.so
    • mkdir build && cd build
    • cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release "-DCMAKE_INSTALL_PREFIX=${PWD}" -DBINEXPORT_ENABLE_IDAPRO=ON "-DIdaSdk_ROOT_DIR=${PWD}/../third_party/idasdk" -DBINEXPORT_ENABLE_BINARYNINJA=ON
    • cmake --build . --config Release
    • cp build/ida/binexport12_ida64.so ~ida/plugins
  • Build BinDiff
    • git clone https://github.com/google/bindiff
    • (generally follow build steps in README, and apply same IDA SDK fixups as above)
    • cp build/out/ida/bindiff8_ida64.so ~ida/plugins

For the plugin to work correctly, you also need to:

  • cd <ida install dir>
  • ln -s ida ida64

Or it will fail to launch the secondary IDA instance.

Edit: plugin binaries available here: bindiff-ida90sp1-linux.tar.gz

athre0z avatar Feb 22 '25 00:02 athre0z