{ description = "Reverse Engineering Workshop flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; }; outputs = { self, nixpkgs }: let allSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f { pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; }); in { devShells = forAllSystems ({ pkgs }: { default = pkgs.mkShell { packages = with pkgs; [ apktool temurin-bin ghidra-bin (vscode-with-extensions.override { vscodeExtensions = pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "vscode-frida"; publisher = "CodeColorist"; version = "0.8.2"; hash = "sha256-mCBnBguwg23Wc2PhefuagiG5ZI2GAW0DoEUWEhr+/PM="; } ]; }) swift #frida-tools -> different version is already required by xpcspy lief libusbmuxd libplist ldid radamsa wireshark android-tools android-studio android-studio-tools jadx (python3.withPackages (pypkgs: with pypkgs; [ (pypkgs.callPackage ./xpcspy.nix {}) (pypkgs.callPackage ./pyimg4.nix {}) (pypkgs.callPackage ./dyldextractor.nix {}) (pypkgs.callPackage ./binder-trace.nix {}) (pypkgs.callPackage ./frida-python.nix {}) ])) ]; }; }); }; }