From 29c828f2891b0e71b298506082a0d86d40008908 Mon Sep 17 00:00:00 2001 From: Random936 Date: Sat, 19 Oct 2024 13:44:31 -0700 Subject: [PATCH] Attempting to install binaryninja --- home/hacking.nix | 1 + packages/all-packages.nix | 1 + packages/binaryninja/default.nix | 68 ++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 packages/binaryninja/default.nix diff --git a/home/hacking.nix b/home/hacking.nix index e7d06bb..d3b6cd9 100644 --- a/home/hacking.nix +++ b/home/hacking.nix @@ -31,6 +31,7 @@ in { }) ]) ++ (with mypkgs; [ evil-winrm + binaryninja ]); } diff --git a/packages/all-packages.nix b/packages/all-packages.nix index 7c11d72..35d3f72 100644 --- a/packages/all-packages.nix +++ b/packages/all-packages.nix @@ -1,4 +1,5 @@ { pkgs, lib, config, ... }: rec { tpm = pkgs.callPackage ./tpm {}; evil-winrm = pkgs.callPackage ./evil-winrm {}; + binaryninja = pkgs.callPackage ./binaryninja {}; } diff --git a/packages/binaryninja/default.nix b/packages/binaryninja/default.nix new file mode 100644 index 0000000..97cf5b9 --- /dev/null +++ b/packages/binaryninja/default.nix @@ -0,0 +1,68 @@ +{ + lib, + buildFHSEnv, + writeScript, + pkgs, + python3 +}: +buildFHSEnv rec { + name = "binaryninja"; + + python = python3.withPackages (ps: with ps; [ + torch + pip + ]); + + targetPkgs = pkgs: with pkgs; [ + dbus + fontconfig + freetype + libGL + libxkbcommon + python + xorg.libXi + xorg.libX11 + xorg.libxcb + xorg.libXext + xorg.libXtst + xorg.libXfixes + xorg.libXrandr + xorg.libXcursor + xorg.libXdamage + xorg.libXrender + xorg.libXcomposite + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + xorg.xcbutilwm + alsaLib + wayland + libxml2 + expat + glib + zlib + krb5 + nspr + nss + ]; + + runScript = writeScript "binaryninja.sh" '' + set -e + # Create a temporary directory for the symlink + mkdir -p "$HOME/.binaryninja/libs" + ln -sf ${python}/lib/libpython3.so "$HOME/.binaryninja/libs/libpython.so" + + # Export environment variables + export PATH="${python}/bin:$PATH" + export PYTHONPATH="${python}/lib/python3.12/site-packages:$PYTHONPATH" + export LD_LIBRARY_PATH="$HOME/.binaryninja/libs:${python}/lib:$LD_LIBRARY_PATH" + + # Run Binary Ninja + exec "$HOME/.binaryninja/binaryninja" "$@" + ''; + + meta = { + description = "BinaryNinja"; + platforms = ["x86_64-linux"]; + }; +}