Skip to content

Instantly share code, notes, and snippets.

@nbareil
Last active April 13, 2023 07:51
Show Gist options
  • Save nbareil/cce3e0eeced0e2ecc8bf818e87e56fde to your computer and use it in GitHub Desktop.
Save nbareil/cce3e0eeced0e2ecc8bf818e87e56fde to your computer and use it in GitHub Desktop.
Nix configuration to setup binary-refinery
# nixos-unstable - 2023-04-10
with (import (fetchTarball https://github.com/nixos/nixpkgs/archive/db24d86dd8a4769c50d6b7295e81aa280cd93f35.tar.gz) {});
let
larkparser = pkgs.python3Packages.buildPythonPackage rec {
name = "lark-parser";
version = "0.12.0";
src = pkgs.fetchPypi {
inherit version;
pname = "lark-parser";
sha256 = "sha256-FZZ9sfEhQBPcplsRgHRQR7m+RX1z2iJPzaPZ3U6WoTg=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
oletools
];
doCheck = false;
};
rtfde = pkgs.python3Packages.buildPythonPackage rec {
name = "rtfde";
version = "0.0.2";
src = pkgs.fetchPypi {
inherit version;
pname = "RTFDE";
sha256 = "sha256-uGtdc0lQ/odFpbiRM/UFVCUtvWfG0bkmXiPuFA5+qKI=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
larkparser
];
doCheck = false;
};
compressedrtf = pkgs.python3Packages.buildPythonPackage rec {
name = "compressedrtf";
version = "0.0.0";
src = pkgs.fetchFromGitHub {
inherit name;
owner = "delimitry";
repo = "compressed_rtf";
rev = "da649e37d747ae97269d0c4c61bf0b0982ccdab2";
sha256 = "sha256-QTvlNktedfEreuqUvUthA66fmM/jFR5NpclZJH/5JLM";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
ebcdic = pkgs.python3Packages.buildPythonPackage rec {
name = "ebcdic";
version = "1.1.1";
format = "wheel";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/0d/2f/633031205333bee5f9f93761af8268746aa75f38754823aabb8570eb245b/ebcdic-1.1.1-py2.py3-none-any.whl";
sha256 = "sha256-M7TLcpvC0L9GzBhHsOWUaJfLjT9TUgxbmqX6mNfnNfE=";
};
# src = pkgs.fetchPypi {
# inherit version;
# pname = "ebcdic";
# format = "wheel";
# dist = "py3";
# sha256 = "sha256-QTvlNktedfEreuqUvUthA66fmM/jFR5NpclZJH/5JLM";
# };
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
redblack = pkgs.python3Packages.buildPythonPackage rec {
name = "red-black-tree-mod";
version = "1.20";
src = pkgs.fetchPypi {
inherit version;
pname = "red-black-tree-mod";
sha256 = "sha256-JEjm/Jy/G+IEx1PzUsbuSaqBVtvx+qV9/Ca9dwUHfgo=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
msgextractor = pkgs.python3Packages.buildPythonPackage rec {
name = "extract-msg";
version = "0.40.0";
src = pkgs.fetchFromGitHub {
inherit name;
owner = "TeamMsgExtractor";
repo = "msg-extractor";
rev = "931025c3747cf45e51f613e11921bd1575915ff0";
sha256 = "sha256-drZqBhm8w8PtonyyrKVWk3DPr1eVzgoNc7on1cmVm+M=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
compressedrtf
beautifulsoup4
imapclient
redblack
rtfde
ebcdic
tzlocal
];
doCheck = false;
};
xlrd2 = pkgs.python3Packages.buildPythonPackage rec {
name = "xlrd2";
version = "1.3.4";
src = pkgs.fetchFromGitHub {
inherit name;
owner = "DissectMalware";
repo = "xlrd2";
rev = "74cd5302f9007f6cf9389f8819cf1676a1e2a717";
sha256 = "sha256-tMDI6+x2OQBj40V1JOTb5Dj60MSoiyRVhVEpZRwQKgE=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
pyonenote = pkgs.python3Packages.buildPythonPackage rec {
name = "pyonenote";
version = "0.6.1";
src = pkgs.fetchFromGitHub {
inherit name;
owner = "DissectMalware";
repo = "pyonenote";
rev = "228dc663e8433ad8157d2813409428f2e9850338";
sha256 = "sha256-koivp2gna7wKshj0EDVPfaijrnHy6wQuXJ1l7rllEoQ=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
pyxlsb2 = pkgs.python3Packages.buildPythonPackage rec {
name = "pyxlsb2";
version = "0.0.9";
src = pkgs.fetchPypi {
inherit version;
pname = "pyxlsb2";
sha256 = "sha256-d0bEzpmXFJV0Cf1qRGSZ/uehUo6m4PQPjKSu2QxM1Ig=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
pyzstd = pkgs.python3Packages.buildPythonPackage rec {
name = "pyzstd";
version = "0.15.6";
src = pkgs.fetchPypi {
inherit version;
pname = "pyzstd";
sha256 = "sha256-MqG2fVNA2N84HnGKeIQXRV7ddr7X6KTL0lms3DC14X4=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
inflate64 = pkgs.python3Packages.buildPythonPackage rec {
name = "inflate64";
version = "0.3.1";
format = "pyproject";
src = pkgs.fetchPypi {
inherit version;
pname = "inflate64";
sha256 = "sha256-tS3Y/v0roXnl36GNbsp+L8giWEYWJxwDnV7x+cqQxxw=";
};
buildInputs = with pkgs.python3Packages; [
setuptools-scm
];
propagatedBuildInputs = with pkgs.python3Packages; [
setuptools
];
doCheck = false;
};
altgraph = pkgs.python3Packages.buildPythonPackage rec {
pname = "altgraph";
version = "0.17.3";
src = pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-rTM1gRTffJQWzbj6HqpYUhZsUFEYcXAhxqjHx6u9A90=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
macholib = pkgs.python3Packages.buildPythonPackage rec {
name = "macholib";
version = "1.16.2";
format = "wheel";
src = pkgs.fetchurl {
url = "https://files.pythonhosted.org/packages/5f/8c/8d7c7437f2799f570f9f4cb1fc974f671eff6fecd659f5e4097858a014ef/macholib-1.16.2-py2.py3-none-any.whl";
sha256 = "sha256-RMQPLNfWcmr4+m/iJUkXjTpN/sw1qc0V6pFtnIOmiOA=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
altgraph
];
doCheck = false;
};
pyppmd = pkgs.python3Packages.buildPythonPackage rec {
name = "pyppmd";
version = "1.0.0";
src = pkgs.fetchPypi {
inherit version;
pname = "pyppmd";
sha256 = "sha256-B1yb0pfjsKh9166ryn/uZoIYrL5p7MHGURBkVY3ohA8=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
multivolumefile = pkgs.python3Packages.buildPythonPackage rec {
name = "multivolumefile";
version = "0.2.3";
src = pkgs.fetchPypi {
inherit version;
pname = "multivolumefile";
sha256 = "sha256-oGSNCq+8luWRmNXBfprK1+tTGr6lEDXQjOgGDcrXCdY=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
pybcj = pkgs.python3Packages.buildPythonPackage rec {
name = "pybcj";
version = "1.0.1";
src = pkgs.fetchPypi {
inherit version;
pname = "pybcj";
sha256 = "sha256-i2gu0Iyqv7fAQtS+CD4o3caSr7He/1VnER+IVQcbdcM=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
py7zr = pkgs.python3Packages.buildPythonPackage rec {
name = "py7zr";
version = "0.20.4";
format = "pyproject";
src = pkgs.fetchPypi {
inherit version;
pname = "py7zr";
sha256 = "sha256-HQH5jqHh9cSZQDWGkbIHb5pYSAVkJlQeeD3jODT1niE=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
setuptools
texttable
pycryptodomex
brotli
psutil
inflate64
pyzstd
pyppmd
pybcj
#pip
multivolumefile
];
doCheck = false;
};
decompyle3 = pkgs.python3Packages.buildPythonPackage rec {
name = "decompyle3";
version = "3.9.0";
src = pkgs.fetchPypi {
inherit version;
pname = "decompyle3";
sha256 = "sha256-IkrL+BCbTdHgJIkA4th0EKvpdtsb/MD3pSGu00L9pTA=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
click
(dontCheckPython xdis)
spark_parser
];
doCheck = false;
};
XLMMacroDeobfuscator = pkgs.python3Packages.buildPythonPackage rec {
name = "XLMMacroDeobfuscator";
version = "0.2.7";
src = pkgs.fetchPypi {
inherit version;
pname = "XLMMacroDeobfuscator";
sha256 = "sha256-fHV1X6rDHBOakrQXVqDQW52ZA9UiRQfy7fNq3BT0eD4=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
roman
xlrd2
msoffcrypto-tool
untangle
larkparser
pyxlsb2
];
doCheck = false;
};
dontCheckPython = drv: drv.overridePythonAttrs (old: { doCheck = false; });
dontdisable = drv: drv.overridePythonAttrs (old: { disabled = false; });
packageOverrides = pkgs: rec {
xdis = pkgs.python3Packages.xdis.override { doCheck = false;};
};
lnkparse3 = pkgs.python3Packages.buildPythonPackage rec {
pname = "LnkParse3";
version = "1.2.0";
src = pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-ECsqumwolhJ8txn4FKhXkhA2j5J3/V7A0BUf4HAWbh0=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
pycdlib = pkgs.python3Packages.buildPythonPackage rec {
pname = "pycdlib";
version = "1.14.0";
src = pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-jsMGsx2chQ8oxf2lJDjZBO3R6Pz4YsX/11YnLvrJ9CI=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
# XXX:
# I know this package exists Nixpgs but it depends on xdis which is not compatible with python 3.10
# and I did not find a way to override the doCheck variable, I am a n00b in nix
myuncompyle6 = pkgs.python3Packages.buildPythonPackage rec {
pname = "uncompyle6";
version = "3.9.0";
src = pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-HmqQLeYOpcP30q9+J0UAa05Lm97eiIoH+EQcmTjy7n0=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
(dontCheckPython xdis)
spark_parser
];
doCheck = false;
};
cabarchive = pkgs.python3Packages.buildPythonPackage rec {
pname = "cabarchive";
version = "0.2.4";
src = pkgs.fetchPypi {
inherit pname version;
sha256 = "sha256-BPYAiUcxFM8m6rK34dCWEcW/r47dMgLazvZrtcceSM8=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
];
doCheck = false;
};
binref = pkgs.python3Packages.buildPythonPackage rec {
name = "binref-refinery";
version = "0.6.1";
src = pkgs.fetchFromGitHub {
inherit name;
owner = "binref";
repo = "refinery";
rev = "36bfa81253a02004473599a774bc7d9dc56c8df0";
sha256 = "sha256-HUy1M3VeaGVl02gaMcRsiMjfO7kP0DMK2LIhnhciTqE=";
};
propagatedBuildInputs = with pkgs.python3Packages; [
toml
defusedxml
pyonenote
python-registry
py7zr
phpserialize
xlrd2
XLMMacroDeobfuscator
pypdf2
colorama
decompyle3
pyperclip
msgextractor
pycryptodome
capstone
javaobj-py3
(dontCheckPython xdis)
asn1crypto
macholib
pefile
cabarchive
python-magic
lnkparse3
pyxlsb2
#(dontCheckPython (dontdisable uncompyle6))
myuncompyle6
msgpack
pycdlib
pyelftools
pillow
openpyxl
];
doCheck = false;
};
customPython = pkgs.python3.buildEnv.override {
extraLibs = with pkgs.python3Packages; [
binref
];
};
in
pkgs.mkShell {
buildInputs = [
customPython
];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment