Fixing Python 3.10 incompatibilities in Binary Ninja

Hello dear reader. Recently, I upgraded my Linux laptop to Fedora 35. Fedora 35 comes with Python 3.10 as the system Python. Unfortunately, as documented in this GitHub issue, (do not forget to upvote!) this causes incompatibilities with Binary Ninja. Here is how I addressed this topic (standard disclaimers apply):

Initially, I decided to use Python 3.9.9 (latest and greatest at the time of writing, for 3.9 branch). I decided to install from source. Installing from source is not that difficult nor it took a disproportionately long time. I got the tarball from Python source releases, decompressed it and them it was a few simple commands:

./configure --prefix=/opt/Python-3.9.9 --enable-shared && make && sudo make install

A few tea sips later, I had a brand new installation waiting for me. The last step was to point the LD_LIBRARY_PATH to the required directory. I decided not to do a system-wide change, I edited instead my .zshrc along the lines of export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/Python-3.9.9/lib .

With all this out of the way, it was a simple matter of creating a dedicated virtual environment for Python 3.9.9 that Binary Ninja could utilize: virtualenv -p /opt/Python-3.9.9/bin/python3.9 binja-3.9

This took care of the preparation. Some sample Binary Ninja settings can look like the following:

I hope the above post will be helpful to all those that encountered this message. Until next time!

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: