1{ lib
2, buildPythonPackage
3, capstone
4, click
5, cryptography
6, fetchFromGitHub
7, pefile
8, pycryptodomex
9, pyelftools
10, pythonOlder
11, typing-extensions
12, yara-python
13}:
14
15buildPythonPackage rec {
16 pname = "malduck";
17 version = "4.2.0";
18 format = "setuptools";
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchFromGitHub {
23 owner = "CERT-Polska";
24 repo = pname;
25 rev = "refs/tags/v${version}";
26 hash = "sha256-UgpblcZ/Jxl3U4256YIHzly7igNXwhTdFN4HOqZBVbM=";
27 };
28
29 propagatedBuildInputs = [
30 capstone
31 click
32 cryptography
33 pefile
34 pycryptodomex
35 pyelftools
36 typing-extensions
37 yara-python
38 ];
39
40 postPatch = ''
41 substituteInPlace requirements.txt \
42 --replace "pefile==2019.4.18" "pefile"
43 '';
44
45 # Project has no tests. They will come with the next release
46 doCheck = false;
47
48 pythonImportsCheck = [
49 "malduck"
50 ];
51
52 meta = with lib; {
53 description = "Helper for malware analysis";
54 homepage = "https://github.com/CERT-Polska/malduck";
55 license = with licenses; [ bsd3 ];
56 maintainers = with maintainers; [ fab ];
57 };
58}